临时把密码或 API 密钥发给别人,你一般怎么发?直接贴进微信、邮件,事情办完了,但密码却还留在聊天记录里。
另一种办法是使用 Pastebin 类文本分享服务:粘贴内容,生成链接,再把链接发出去。
但如果是密码、API 密钥、恢复代码,就会有几个问题:
- 我的密码、API 密钥会被别人看到么?
- 内容会被保存多久?
- 服务提供者能不能看到我的密码?
尤其在 API 密钥本身就是现金的情况下…

binthere – 不需要你信任它的文本分享服务
所谓不需要你信任它,是因为它从设计原理上就避免了内容泄漏:
- 每条笔记在上传前会通过本地浏览器进行加密
- 服务器只存储加密后的数据
- 即使有人能够访问服务器或数据库,他们也只能找到密文

有趣的事情
开发者说,这也是他最喜欢的部分:加密密钥不会上传,而是保留在 URL 片段中:
https://binthere.gaury.dev/p/abc123#key_here
其中 key_here 就是加密密钥,只会保留在本地浏览器中,不会发送到服务器。
因为浏览器永远不会向服务器发送#号之后的任何内容。
这意味着服务器只会接收:
https://binthere.gaury.dev/p/abc123
当有人打开链接时,他们的浏览器会从 URL 中读取密钥,下载加密的笔记,并在本地解密所有内容。
服务器始终没有获得加密密钥,也就意味着服务器不能解密内容。

安装方式
可以直接使用开发者的服务:
开发者说:如果你不信任他搭建的服务,就去 Cloudflare Worker 上自托管,或者在你自己的服务器上托管。
代码在 GitHub,MIT 授权。
青小蛙也装了一个,替代了之前一直在使用的 PrivateBin。

关于安装自托管服务这件事,现在可简单了。
CLI / HTTP API
binthere 还支持命令行与 HTTP API,也就意味着可以让 AI Agent 直接使用,以下是一个例子:
cat appinn.txt | npx binthere create --server https://b.appinn.net

这里的 npx binthere create 是用本地程序进行加密,然后再传输到服务器上,最后获得了分享 URL
| 接口 | 用途 |
|---|---|
POST /api/paste | 创建便笺 |
GET /api/paste/:id | 获取普通便笺;一次性便笺只返回元信息,不消耗阅读机会 |
POST /api/paste/:id/consume | 读取一次性便笺,读取后内容不再保留 |
DELETE /api/paste/:id | 使用创建时返回的删除令牌,提前移除便笺 |
与其它产品区别
| 项目 | 服务端 | 存储方式 | 主要特点 |
|---|---|---|---|
| binthere | Cloudflare Worker(无服务器架构,无需源站) | Workers KV + Durable Object | 固定的协议规范及测试向量;并发访问时也能确保内容只被读取一次;前端无需框架或构建步骤 |
| PrivateBin | PHP | 文件系统 / 数据库 / S3 | 功能成熟,支持多种格式、评论讨论和多语言 |
| Yopass | Go | Memcached / Redis | 专注于密码、密钥等信息的分享,提供命令行客户端 |
| cryptgeon | Rust | Redis | 支持文件分享,可限制查看次数 |
原文:https://www.appinn.com/binthere/
最后,服务器仍然可以看到 IP 地址、时间以及密文大小(它是私密的,而不是匿名的)