主密码设置要点 - 数据库的第一道防线
主密码的定位
主密码(Master Password)是解锁 KeePassDX 数据库的核心钥匙。和一般网站账户的密码不同,主密码承担的是整个加密保险库的安全责任——一旦被破解,所有凭证、附件、OTP 密钥都会暴露。
KeePassDX 在数据库创建时会用 Argon2d 密钥派生函数把主密码转换成 256 位加密密钥。Argon2d 是内存硬函数,专门设计用来抵抗 GPU/ASIC 的并行暴力破解。

好主密码的特征
长度优先于复杂度
密码学界的共识是:长度比符号种类更重要。一个 20 字符的纯随机字母数字组合,安全性远超 12 字符但包含奇怪符号的密码。
- 8 字符:约 18 个月可被暴力破解
- 12 字符:约 400 年(单 GPU)
- 16 字符:约 50 万年
- 20 字符:约 30 万亿年
但 KeePassDX 的 Argon2d 密钥派生会大幅增加每次尝试的计算量,实际破解时间还要再乘以几个数量级。
不要用常见短语
以下类型的密码一定要避免:
- 名言、书名、电影名("The quick brown fox")
- 生日、纪念日、电话号码
- 键盘模式("qwerty"、"123456"、"aaaa")
- 密码管理器名称本身("keepassdx"、"password")
- 任何在彩虹表里出现过的密码
使用口令词 + 变异
一个实用的方法是口令词法:选 3-5 个不相关的随机单词拼成一个短语,然后加上小变异:
- 例子:
coral-hazardous-watch-4(来自 Diceware 4 词) - 例子:
Piano!Garden7River@(加一些符号和数字)
这样生成的口令既有足够熵值(Diceware 4 词 = 约 52 位熵),又比纯随机字符好记得多。
忘记主密码怎么办
没有"找回主密码"功能。 KeePassDX 的设计理念是:如果有找回功能,那就意味着后门存在,这违背了本地保险库的安全承诺。
所以在设置主密码的时候,一定要同时做以下事情:
- 写下来放在安全的物理位置:一张纸、一个密码保险箱、信任的人手里
- 或者用"记忆术":比如把口令词转换成一个故事,每次解锁时从脑海里的故事反推出口令
- 定期验证自己能记住:每月测试一次,关闭数据库重新输入主密码打开
忘记主密码 = 数据库永久锁死。没有任何办法能恢复数据。
如果使用密钥文件
如果你同时使用主密码 + 密钥文件(双因子解锁),那安全性更上一层——攻击者不仅要猜到你的主密码,还需要物理上拿到你的密钥文件。
这种情况下主密码可以稍短一些(比如 12 字符),但密钥文件的保管变得同等重要。密钥文件绝对不能和数据库文件放在同一个位置。