老实说,答案是"取决于你在保护什么"——论坛账户和加密货币钱包一旦被攻破,风险完全不在一个量级,所以它们不需要相同的密码长度。本文按账户类型给出具体的长度目标,并解释为什么当前的指南更看重长度而不是强制符号之类的复杂度规则。
太长不看版
- NIST SP 800-63B 建议允许(并鼓励)使用长密码,而不是强制执行诸如强制符号之类的复杂度规则。
- 16 位字符对大多数账户来说是合理的默认值;涉及资金或身份的账户建议 20 位以上;密码管理器主密码建议 24-32 位以上。
- 长度以指数方式提升你的防护能力;每一条强制字符类型规则带来的提升相对有限。相关数学原理见密码熵详解。
- 只有当字符真正随机时,长度才有意义——一个很长但可预测的密码(一句话、一个键盘模式)无法获得完整的防护效果。
简短回答
大多数账户建议至少使用 16 位字符,涉及金融或身份的关键账户建议 20 位以上,密码管理器主密码或其他单点故障环节建议 24-32 位以上。PassGenerate 可以直接设置长度,默认值为 16,覆盖了常见场景;对高风险账户可以自行调高。
按账户类型推荐的长度
| 账户类型 | 建议长度 | 原因 |
|---|---|---|
| 低风险论坛或订阅账户 | 12-16 位 | 被攻破后果较轻;但仍值得避免被轻易猜中 |
| 邮箱和云存储 | 16-20 位 | 邮箱往往是所有其他账户的找回途径——一旦被攻破会引发连锁反应 |
| 银行和金融服务 | 20-24 位 | 直接涉及资金风险;各机构本身也在逐步提高最低长度要求 |
| 管理员账户、加密货币钱包、密码管理器主密码 | 24-32 位以上 | 单点故障环节——一旦被攻破可能暴露下游所有内容 |
| 需要经常凭记忆输入的密语 | 4-6 个随机单词 | 熵值可媲美甚至超过较短的符号密码,且更容易准确输入 |
为什么 NIST 放弃了强制复杂度规则
早期的密码策略——强制大写字母、强制数字、强制符号、每 90 天强制轮换——出发点是好的,但实践中适得其反。强制复杂度会把人推向可预测的模式(Summer2024!、Password1@),这些模式满足了规则要求,却几乎没有增加真实的熵;强制轮换则会让人倾向于递增一个数字(Password1、Password2),而不是真正选择一个全新的密码。
NIST 在 2025 年发布的 SP 800-63B 第 4 版中将这一转变正式化:服务方必须支持至少 64 位字符的密码,并且必须接受空格和全部可打印字符;如果密码是唯一的身份验证因素,NIST 现在设定最低 15 位字符,如果搭配多因素认证则降到 8 位。第 4 版比早期指南走得更远,它明确禁止强制性的组合规则(要求大写字母、数字、符号),而不仅仅是不鼓励;并且要求服务方转而对照已泄露密码列表来检查新密码。它还彻底取消了强制定期轮换——只有在有实际证据表明密码已泄露时才应该更换,而不是按固定日历轮换。真正有效的安全杠杆是长度加上真正的随机性,而不是一份强制字符类型的清单。
仅靠长度就能保证安全吗?
不能——只有配合真正的随机性,长度才有意义。aaaaaaaaaaaaaaaaaaaa(20 位)尽管很长,却极易被猜中;一句摘自知名书籍的 20 字符句子,也很容易被基于常见短语构建的字典攻击破解。上面的长度建议都假设字符是由密码学安全伪随机数生成器(CSPRNG)生成的——就像 PassGenerate 那样,或者对于密语来说是从真正随机的词表中抽取——而不是为了便于记忆而选择的,后者几乎总是意味着随机性更低。
一个实用的应用方法
你不需要每次都手动计算熵值。作为一个实用原则:
- 问自己:如果这个具体账户被攻破会怎样——只是有点烦,还是会引发连锁灾难?
- 根据这个答案,从上表中选一个长度。
- 随机生成,而不是自己拼凑——只有背后有真正的随机性,长度才能发挥作用。
- 对于需要经常凭记忆输入的账户,使用随机密语而不是随机字符串——安全性相当,但输入准确率会明显更高。
关键要点
- 密码长度应该根据该账户一旦被攻破的实际风险来调整,而不是对所有场景套用同一个固定数字。
- NIST SP 800-63B 更看重较长的最低长度和对照泄露列表检查,而不是强制性的字符组合规则。
- 仅有长度是不够的——必须搭配真正的随机性(CSPRNG 生成或随机词表),才能兑现长度所承诺的安全性。
- 16 位字符能覆盖大多数日常账户;密码管理器主密码这类环节则应提高到 24-32 位以上。
为什么可以信任 PassGenerate
- 密码使用 Web Crypto API 在你的浏览器本地生成。
- 不会向服务器传输任何密码。
- 使用密码学安全伪随机数生成器(CSPRNG)。
- 遵循 NIST 和 OWASP 推荐的现代安全最佳实践。
参考资料
- NIST SP 800-63B 第 4 版(2025)– 数字身份指南
- OWASP 身份验证速查表
- CISA 密码指南
结论
不存在唯一"正确"的密码长度——只有适合每个账户风险等级的长度。16 位字符是大多数账户的合理下限,涉及金融和身份的关键账户应达到 20 位以上,任何充当单点故障环节的密码(尤其是密码管理器主密码)则应达到 24-32 位甚至更多。不过,除非字符真的是随机的,否则这些都没有意义——长度是乘数,而随机性才是被乘的那个数。