不登录、不复制链接,让信息只在两台设备之间短暂存在。
Account-free, link-free, end-to-end encrypted temporary transfer.
简体中文 | English
截图为中文界面。English screenshots are available in README_EN.md.
USend 是一款用于设备间临时传输的网页工具。发送方选择文件或文字并生成 8 位配对码,接收方在另一台设备输入配对码即可连接。默认核对双方安全码后发送,内容在发送端加密、经服务端短暂中转,并只在接收端解密。
| 常见临时传输方式 | USend |
|---|---|
| 注册账号或安装客户端 | 浏览器打开即用 |
| 复制并暴露长期分享链接 | 8 位一次性配对码 |
| 服务端能够读取文件内容 | 浏览器端端到端加密 |
| 依赖手动清理 | 接收成功、撤销或到期自动销毁 |
- 两种内容类型:支持最大 20 MB 的单个文件,以及最多 12,000 字的文字。
- 无需账号:发送和接收都从同一个首页开始。
- 无需分享链接:只需告诉对方一次性的 8 位配对码。
- 端到端加密:两台设备通过 ECDH P-256 协商共享秘密,再使用 HKDF-SHA-256 派生 AES-256-GCM 内容密钥。
- 安全码:默认由发送方确认双方安全码一致后再发送;可信场景下可关闭核对并在连接后自动发送。
- 附加限制:“仅限同一网络”默认关闭;需要时可手动开启,并可设置至少 8 位的接收密码。
- 用途隔离派生:接收密码经随机盐和 PBKDF2-SHA-256(210,000 次)生成独立的验证与加密材料。
- 自动过期:可选择 1、5 或 10 分钟后删除。
- 阅后即焚:接收完成后立即删除房间和密文。
- 主动撤销:发送方可以随时终止传输并使配对码失效。
| 发送文件 | 配置安全限制 | 输入配对码 |
|---|---|---|
![]() |
![]() |
![]() |
直接访问 usend.xyz:
- 发送设备选择文件或文字,按需调整安全码核对、网络限制和接收密码。
- 生成配对码,并在接收设备输入。
- 默认核对两台设备的安全码;若发送方关闭核对则连接后自动发送。
- 接收成功后,临时数据自动销毁。
需要 Node.js 20 或更高版本。
git clone https://github.com/frankfika/usend.git
cd usend
npm install
npm run dev前端默认运行在 http://localhost:5173,本地参考 API 运行在 http://localhost:8787。如需使用完整的 Cloudflare 本地运行时:
npm run dev:edgeflowchart LR
S["发送设备<br/>本地加密"] -->|"分块密文"| W["Cloudflare Worker"]
W --> R["房间 Durable Object"]
W --> C["配对码与限流<br/>Durable Object"]
R -->|"鉴权下载密文"| D["接收设备<br/>本地解密"]
S <-.->|"ECDH + 校验码"| D
A["Durable Object Alarm"] -->|"到期清理"| R
- Cloudflare Worker 同域提供静态网页和 API。
- 每个传输房间使用独立 Durable Object 保存元数据和分块密文。
- 独立 Durable Object 管理配对码映射和跨节点限流。
- Durable Object Alarm 负责到期清理;成功接收或撤销会同步删除。
服务器不会接收私钥或内容密钥。密文下载需要接收端独立令牌,令牌在存储中仅保留哈希。应用默认启用 CSP、HSTS、防嵌入、MIME 防嗅探、同源限制与无缓存响应。
USend 可以降低服务端读取临时内容的风险,但不能替代对设备本身、浏览器环境或通信对象身份的信任判断。
npm test
npm run typecheck:worker
npm run deploy:dry-run边缘冒烟测试需先运行 npm run dev:edge,再在另一个终端执行 npm run test:edge。README 截图可在本地应用启动后通过 npm run screenshots 重新生成。
生产发布方式与密钥配置见 DEPLOYMENT.md。
当前版本为 v0.1.0,更新记录与发布说明请查看 GitHub Releases。
如果 USend 对你有帮助,欢迎请作者喝杯咖啡。感谢你的支持!



