一句话说明
树洞(www.shudong.com)是在浏览器里加密的私密日记:密码经 PBKDF2 迭代 60 万次派生密钥,标题、正文与标签用 AES-256-GCM 加密后才上传,服务器只保存密文,不接触密码和密钥。每条内容另带 SHA-256 内容指纹,解密后在本机校验;指纹不上链。免费无广告,密码丢失无法找回。
智能体覆盖的关键工作流
每条秘密在浏览器里用 AES-256-GCM 加密成一个密文块,标题、正文、标签全部封在里面,每次加密使用独立的随机 IV。服务器能看到的只有条目编号、所属账号、密文和创建/更新时间——连你给它打了什么标签都读不到。
AES-256-GCM · 每次独立随机 IV
密码与 16 字节随机盐经 PBKDF2-SHA256 迭代 60 万次,得到 512 位输出并一分为二:前一半是登录凭证,发给服务器,服务器只保存它的 bcrypt 哈希;后一半是包装密钥,只留在本机。两半互相推不出来,所以服务器手里的登录凭证解不开任何内容。
PBKDF2-SHA256 · 600,000 次迭代
真正加密内容的是注册时在浏览器里随机生成的 256 位数据密钥;它被包装密钥再加密一层后才存到服务器。改密码只需重新包装这一把密钥,已有内容不用逐条重加密。登录后数据密钥以「不可导出」的形式存在浏览器里,刷新页面不必重输密码,脚本也读不出密钥原文;闲置 15 分钟默认自动锁定(可改为 5 / 60 分钟或关闭)。
默认闲置 15 分钟自动锁定
加密前,浏览器对明文(标题、正文、标签)计算 SHA-256,取前 16 位十六进制作为内容指纹,随明文一起封进密文。阅读时解密后重新计算并比对,一致才显示「校验完好」。这和区块链用来防篡改的是同一类密码学哈希,但树洞只在本机计算和比对,不把指纹写到任何链上——它证明的是「这段内容和加密时一致」,不提供可供第三方核验的链上存证或时间戳。
SHA-256 · 本机校验 · 未上链
单篇或某个标签下的内容可以生成带密码和有效期(1–30 天)的分享链接。分享密码经 PBKDF2-SHA256 迭代 20 万次派生出访问凭证与分享密钥,快照用 AES-256-GCM 加密保存;访客在自己的浏览器里输入密码解密。只累计访问次数,不记录访客 IP 与浏览器信息,可随时撤销。需要说明的是:分享前,这部分内容会以明文送第三方内容安全服务(腾讯云)审核。
有效期 1–30 天 · 可撤销
服务器读不到内容,也就没法替你搜索。登录后浏览器拉取密文、逐条解密并放在内存里,按月时间线、全文搜索、标签筛选都基于这份内存数据。全部秘密可以一键导出为 Markdown 或 JSON,文件由浏览器在本地生成——导出的是明文,需要自己妥善保存。
横向对比
| 维度 | 树洞 | 常见云笔记 / 日记应用 | 哈希上链存证 |
|---|---|---|---|
| 内容在哪里加密 | 浏览器里,上传之前 | 多为传输加密 + 服务端加密,密钥在运营方(视厂商而定) | 链上只放哈希,原文要另行保管 |
| 运营方能否读到正文 | 服务器只有密文,不持有密钥 | 技术上通常可以,靠制度与权限约束 | 读不到原文,但哈希与上链时间公开可见 |
| 忘记密码 | 无法找回,内容永久不可读 | 通常可凭手机或邮箱重置 | 不涉及 |
| 完整性校验 | SHA-256 内容指纹,解密后在本机比对并显示结果 | 一般不向用户展示 | 链上哈希可供任何第三方独立核验 |
| 向第三方证明「某个时间已存在」 | 不能:指纹未上链,没有第三方时间戳 | 不能 | 能,这正是上链的主要用途 |
| 删除 | 删除即从库中移除该条密文 | 取决于厂商的保留策略 | 链上记录不可删除 |
实际落地时的效率对比
智能体与人工监督如何协同
source
你的浏览器(WebCrypto:派生密钥 · 加解密 · 指纹)
agent
树洞服务器(只存密文与包装后的密钥)
human
腾讯云内容安全(仅分享时审核)
output
访客浏览器(凭分享密码解密)
Flow
可核对事实
密钥派生使用 PBKDF2-SHA256、600,000 次迭代、16 字节随机盐,输出 512 位:前 256 位为登录凭证,后 256 位为只留在浏览器的包装密钥。
每条秘密存为一个密文块:12 字节随机 IV 加上 AES-256-GCM 对「标题、正文、标签、内容指纹」整体加密的结果;数据密钥是浏览器随机生成的 256 位密钥,经包装密钥加密后存服务器。
内容指纹是对明文(标题、正文、标签)计算 SHA-256 后取前 16 位十六进制,随明文一起加密;阅读时解密后重新计算比对。指纹不写入任何区块链。
分享密码经 PBKDF2-SHA256 迭代 200,000 次派生访问凭证与分享密钥;有效期 1–30 天;单次分享最多 100 篇且明文总量不超过 2 MB;只累计访问次数。分享前内容以明文送腾讯云内容安全审核。
登录页对外的承诺原文是「服务器只保存密文,不接触你的密码和密钥」;注册时须勾选确认「密码丢失后无法找回」。
适用边界