Notesnook "ciphertext cannot be decrypted" 错误怎么处理
错误触发场景
这个错误通常出现在以下场景:
- 你更换了主账户密码,新密码派生的主密钥用来重新加密数据加密密钥,但服务器上还残留了部分用旧密钥加密的条目
- 同步中断过程中客户端异常退出,部分条目用旧密钥加密、部分用新密钥
- 多设备同步冲突后手动合并时产生了密钥混乱
为什么无法自动修复
Notesnook 的零知识加密架构里,客户端持有解密密钥、服务器只存密文。如果服务器上有几条密文条目用旧密钥加密,而你的客户端现在只有新密钥——没有任何代码路径能让新密钥解开旧密钥加密的数据。密钥派生是哈希单向的,旧密钥无法从新密钥反推出来。
唯一出路:清空账户重置
Notesnook 官方在帮助中心明确给出的修复路径:清空账户并重置。这是之前在 三步账户恢复 里提到的"方式三"。重置后所有笔记、Notebook、Tag、附件都会被永久删除。
在重置之前
清空账户意味着你失去当前所有用新密钥加密的正常数据。所以操作顺序应该是:
- 从还有旧密钥的设备上导出正常数据:如果某台设备上还能正常打开大部分笔记,先把能打开的全部导出成 Markdown/HTML 备份(用 .nnbackupz 加密备份可能在恢复时仍然遇到解密问题,建议明文导出)
- 跑一遍完整备份:虽然解密可能有问题,但能导出多少导出多少
- 清空账户:登录页 → Forgot password → 选择"Clear data & reset account"
- 用新密码重新开始
- 把之前导出的 Markdown 文件重新导入(Import → Markdown → 选择文件夹)
预防
- 修改密码后在每台设备上等同步完全完成(小圆点变绿)再操作其他设备
- 尽量避免在一台设备上改密码的同时,另一台设备还在离线编辑
- 定期做 .nnbackupz 加密备份——备份文件能救回大部分数据,即使恢复时遇到密钥混乱
- 切换密码管理器前确认密码迁移过程不会触发 Notesnook 的密码修改流程