一个保险库,从手机到浏览器
来源:dev.to — 2026-09-27
📋 概述
加密一个文件是容易的部分;让同一个人在手机和浏览器上都能访问它,同时又不把密钥交给同步服务器,才是应用开始堆积安全代码的地方。Codename One 新推出的 com.codename1.security.vault 接管了这部分工作。保险库会生成一个随机的 32 字节数据密钥,用带认证的加密写入记录,磁盘上保存的是被包裹(wrapped)后的密钥副本而不是密钥本身:一个包裹由用户密码派生材料保护,其他包裹可以支持恢复或「记住此设备」,改密码时只需替换对应的包裹,不必重加密所有记录。
🔑 核心要点
- 数据密钥与密码分离:保险库生成随机 32 字节数据密钥,存储的是被包裹的副本。
- 记录采用带认证的加密,既能隐藏内容也能检测篡改。
- 同步服务器只保存密文和导出的保险库状态,不需要明文,也不需要保险库密码。
- 服务端登录必须用另一套凭据:把保险库密码发给服务器,等于把它要保护的材料直接交出去。
- 解锁策略可以是仅本次会话(配合 autoLockAfter 自动锁定)、记住设备或通行密钥。
- 示例代码演示了 enroll 后 seal 一条记录、上传密文与导出状态,并在使用后立即把 char[] 密码清零。
💡 金句
加密一个文件是容易的部分。让同一个人在手机和浏览器上访问它,而又不把密钥交给同步服务器——这才是应用开始堆积安全代码的地方。
👍 0
👎 0
← 返回 dev.to 首页