行业个人隐私工具 / 加密日记

树洞 —— 在浏览器里加密的私密日记

秘密在你的浏览器里加密之后才上传:服务器只保存密文,不接触你的密码和密钥

一句话说明

树洞(www.shudong.com)是在浏览器里加密的私密日记:密码经 PBKDF2 迭代 60 万次派生密钥,标题、正文与标签用 AES-256-GCM 加密后才上传,服务器只保存密文,不接触密码和密钥。每条内容另带 SHA-256 内容指纹,解密后在本机校验;指纹不上链。免费无广告,密码丢失无法找回。

智能体覆盖的关键工作流

核心能力

01

先加密,再上传

每条秘密在浏览器里用 AES-256-GCM 加密成一个密文块,标题、正文、标签全部封在里面,每次加密使用独立的随机 IV。服务器能看到的只有条目编号、所属账号、密文和创建/更新时间——连你给它打了什么标签都读不到。

AES-256-GCM · 每次独立随机 IV

02

密码不离开浏览器

密码与 16 字节随机盐经 PBKDF2-SHA256 迭代 60 万次,得到 512 位输出并一分为二:前一半是登录凭证,发给服务器,服务器只保存它的 bcrypt 哈希;后一半是包装密钥,只留在本机。两半互相推不出来,所以服务器手里的登录凭证解不开任何内容。

PBKDF2-SHA256 · 600,000 次迭代

03

数据密钥与密码分层

真正加密内容的是注册时在浏览器里随机生成的 256 位数据密钥;它被包装密钥再加密一层后才存到服务器。改密码只需重新包装这一把密钥,已有内容不用逐条重加密。登录后数据密钥以「不可导出」的形式存在浏览器里,刷新页面不必重输密码,脚本也读不出密钥原文;闲置 15 分钟默认自动锁定(可改为 5 / 60 分钟或关闭)。

默认闲置 15 分钟自动锁定

04

内容指纹:用哈希做完整性校验,不上链

加密前,浏览器对明文(标题、正文、标签)计算 SHA-256,取前 16 位十六进制作为内容指纹,随明文一起封进密文。阅读时解密后重新计算并比对,一致才显示「校验完好」。这和区块链用来防篡改的是同一类密码学哈希,但树洞只在本机计算和比对,不把指纹写到任何链上——它证明的是「这段内容和加密时一致」,不提供可供第三方核验的链上存证或时间戳。

SHA-256 · 本机校验 · 未上链

05

分享出去的是一份单独加密的快照

单篇或某个标签下的内容可以生成带密码和有效期(1–30 天)的分享链接。分享密码经 PBKDF2-SHA256 迭代 20 万次派生出访问凭证与分享密钥,快照用 AES-256-GCM 加密保存;访客在自己的浏览器里输入密码解密。只累计访问次数,不记录访客 IP 与浏览器信息,可随时撤销。需要说明的是:分享前,这部分内容会以明文送第三方内容安全服务(腾讯云)审核。

有效期 1–30 天 · 可撤销

06

搜索、筛选、导出都在本机完成

服务器读不到内容,也就没法替你搜索。登录后浏览器拉取密文、逐条解密并放在内存里,按月时间线、全文搜索、标签筛选都基于这份内存数据。全部秘密可以一键导出为 Markdown 或 JSON,文件由浏览器在本地生成——导出的是明文,需要自己妥善保存。

横向对比

树洞 vs 常见云笔记 vs 哈希上链存证

维度树洞常见云笔记 / 日记应用哈希上链存证
内容在哪里加密浏览器里,上传之前多为传输加密 + 服务端加密,密钥在运营方(视厂商而定)链上只放哈希,原文要另行保管
运营方能否读到正文服务器只有密文,不持有密钥技术上通常可以,靠制度与权限约束读不到原文,但哈希与上链时间公开可见
忘记密码无法找回,内容永久不可读通常可凭手机或邮箱重置不涉及
完整性校验SHA-256 内容指纹,解密后在本机比对并显示结果一般不向用户展示链上哈希可供任何第三方独立核验
向第三方证明「某个时间已存在」不能:指纹未上链,没有第三方时间戳不能能,这正是上链的主要用途
删除删除即从库中移除该条密文取决于厂商的保留策略链上记录不可删除

实际落地时的效率对比

量化改善

写日记的人
改造前把心事写进云笔记,只能相信运营方不看、数据库不泄露
改造后上传的只有密文,服务器不持有能解开它的密钥
想给特定的人看
改造前截图发出去就收不回,也说不清谁看过
改造后带密码和有效期的链接,到期自动失效,随时可撤销
换设备、换浏览器
改造前只存本机的日记,换一台手机就断档,丢了设备就全没了
改造后任意浏览器登录,输入密码后在本机解出密钥

智能体与人工监督如何协同

系统架构(示意)

source

你的浏览器(WebCrypto:派生密钥 · 加解密 · 指纹)

agent

树洞服务器(只存密文与包装后的密钥)

human

腾讯云内容安全(仅分享时审核)

output

访客浏览器(凭分享密码解密)

Flow

  • 你的浏览器(WebCrypto:派生密钥 · 加解密 · 指纹)→树洞服务器(只存密文与包装后的密钥)密文 + 登录凭证,密码不上传
  • 树洞服务器(只存密文与包装后的密钥)→你的浏览器(WebCrypto:派生密钥 · 加解密 · 指纹)包装后的密钥 + 密文,在本机解开
  • 树洞服务器(只存密文与包装后的密钥)→腾讯云内容安全(仅分享时审核)仅要分享的内容,明文送审
  • 树洞服务器(只存密文与包装后的密钥)→访客浏览器(凭分享密码解密)加密快照,到期失效

可核对事实

数据与来源

密钥派生使用 PBKDF2-SHA256、600,000 次迭代、16 字节随机盐,输出 512 位:前 256 位为登录凭证,后 256 位为只留在浏览器的包装密钥。

企业自述树洞线上版本(www.shudong.com)浏览器端加密模块的实现,YGG 自研、源码未公开,2026-10-07 核对。2026-10-07

每条秘密存为一个密文块:12 字节随机 IV 加上 AES-256-GCM 对「标题、正文、标签、内容指纹」整体加密的结果;数据密钥是浏览器随机生成的 256 位密钥,经包装密钥加密后存服务器。

企业自述同上:线上版本浏览器端加密模块的实现,2026-10-07 核对。2026-10-07

内容指纹是对明文(标题、正文、标签)计算 SHA-256 后取前 16 位十六进制,随明文一起加密;阅读时解密后重新计算比对。指纹不写入任何区块链。

企业自述线上版本阅读页的「内容指纹 / 校验完好」显示与加密模块实现,2026-10-07 核对。2026-10-07

分享密码经 PBKDF2-SHA256 迭代 200,000 次派生访问凭证与分享密钥;有效期 1–30 天;单次分享最多 100 篇且明文总量不超过 2 MB;只累计访问次数。分享前内容以明文送腾讯云内容安全审核。

企业自述线上版本分享确认框的告知文案与分享模块实现,2026-10-07 核对。2026-10-07

登录页对外的承诺原文是「服务器只保存密文,不接触你的密码和密钥」;注册时须勾选确认「密码丢失后无法找回」。

企业自述www.shudong.com 登录页与注册页的页面文案,2026-10-07 核对。2026-10-07

适用边界

什么情况下本方案不适用

  • 密码丢失无法找回。服务器不保存密码,也没有能解开内容的密钥,忘记密码就等于永远失去全部内容——这是「服务器读不到」的代价,不是可以申诉恢复的故障。不能接受这一点的人,应选择可重置密码的普通云笔记。
  • 它不是区块链应用,也不提供存证。内容指纹是在本机计算和比对的 SHA-256 哈希,没有写到任何链上,没有第三方时间戳,不能用来向他人证明「这段文字在某个时间就已存在」。需要司法存证、版权确权这类用途的,应使用真正上链或有资质的时间戳服务。
  • 「服务器只保存密文」不等于「任何情况下都无法查看」。树洞是网页应用,负责加密的代码每次由服务器下发,使用者仍需信任下发的代码未被改动;加密强度也取决于密码本身——服务器上存有包装后的密钥,弱密码仍可能被离线猜解。
  • 分享是一个例外路径。要分享的内容会先以明文发送给第三方内容安全服务(腾讯云)审核,通过后才以分享密码加密保存一份快照;未分享的内容始终只以密文保存。完全不希望内容离开本机的,不要使用分享功能。
  • 只支持文字,不支持图片与音频;没有微信小程序。服务器虽读不到内容,仍可见条目数量、密文长度与创建/更新时间。旧版账号在首次登录时迁移到新的加密方式;旧版是服务端加密,迁移后旧格式副本仍留在服务器上、在清理之前服务端可以解开,清理安排在迁移满 30 天之后人工执行。
撰写:YGG 臻星科技平台工程团队发布:2026-10-07最近复核:2026-10-07