AES-256加密+本地存储:这款国内密码管理器的设计
作为一个对信息安全有点研究的人,我一直对密码管理器持谨慎态度。
不是因为不信任加密技术,而是因为不信任"云端"。
密码管理器的信任困境
市面上的密码管理器大多采用云端同步方案。方便是方便,但从安全模型来看,这意味着:
- 你的密码被加密后存储在第三方服务器
- 解密密钥可能同样在服务器端
- 服务商可能持有主密钥用于"账户恢复"
- 云端数据库成为黑客的高价值攻击目标
这不是杞人忧天。LastPass在2022年就遭遇了严重的数据泄露事件,用户加密的密码库被窃取。虽然数据是加密的,但谁敢保证暴力破解永远不可能成功?
所以当看到千存密码本 的设计方案时,我认真研究了一番。

本地优先:攻击面最小化
千存密码本的架构设计可以用四个字概括:本地优先。
所有密码数据以加密形式存储在用户本地设备的SQLite数据库中。没有云端同步,没有远程服务器,数据不经过任何网络传输。
从安全角度来说,这意味着:
- 攻击面最小化:没有云端API,没有网络入口,黑客无从下手
- 数据主权明确:数据在你的硬盘上,物理占有权等于数据所有权
- 离线可用:核心功能完全离线运行,不依赖网络
这种设计牺牲了多设备同步的便利,换来的是极致的安全控制。对于安全敏感用户来说,这个trade-off是值得的。

加密方案:符合行业最佳实践
本地存储只是第一步,加密才是核心。
千存密码本的加密方案如下:
密钥派生(PBKDF2)
算法: PBKDF2-HMAC-SHA256
迭代次数: 100,000次
盐值: 随机生成
输出密钥: 256位
PBKDF2的作用是将用户的主密码(通常强度有限)转换为一个安全的加密密钥。10万次迭代意味着每次尝试都需要大量计算,有效抵御暴力破解和字典攻击。

对称加密(AES-256-GCM)
算法: AES-256-GCM
密钥长度: 256位
模式: Galois/Counter Mode
AES-256是目前的黄金标准,GCM模式同时提供加密和认证,能够检测任何数据篡改。每条记录使用独立的初始化向量(IV),确保相同的明文加密后密文不同。
这个方案符合OWASP推荐的安全存储实践。
技术栈选择:Tauri vs Electron
从实现角度看,千存密码本采用了Tauri框架而非更常见的Electron。
这个选择带来了明显的性能优势:
| 指标 | Tauri | Electron |
|---|---|---|
| 安装包 | 10-15MB | 150-180MB |
| 内存 | 80-120MB | 200-300MB |
| 启动 | <1秒 | 2-3秒 |
Tauri使用系统WebView而非打包Chromium,资源占用显著降低。对于常驻后台的工具类应用,这个差异很实际。
功能完整性
除了密码管理,千存密码本还支持:
- 身份证信息存储
- 银行卡管理(CVV、有效期)
- 农历生日提醒
- APP Key管理
- 安全笔记
密码生成器支持自定义长度和字符集,可排除易混淆字符,有实时强度指示。
数据导入导出使用加密文件,需要主密码验证,支持备份迁移。
潜在改进空间
从技术角度,我认为有几个可以优化的方向:
- 密钥派生迭代次数:10万次是合理值,但考虑到GPU算力增长,未来可以增加到30万次
- 内存安全:希望能看到敏感数据在使用后及时清零内存的实现
- 开源审计:如果代码开源,安全可信度会更高
总结
千存密码本的安全设计理念我认同:本地优先、加密可靠、数据自主。
对于重视安全、不依赖多设备同步的用户,这是一个值得考虑的选择。完全免费的价格也消除了试用门槛。
本文从技术角度分析产品安全设计,不构成安全背书。请根据自身需求和安全要求选择合适的密码管理方案。