写下这个密码的人,究竟做了多少次真正独立的选择?
密码可能外表复杂,配方却很简单:季节、年份和感叹号带来不少字符,却没有多少意外。独立随机选出的几个词则可以读懂,同时又不是谁会自然写出的句子。关键在于选择过程,而不是结果看起来装饰得多繁复。
数一数选择,而不是标点。
可能空间是什么
设想十二个位置,每个位置都从二十六个小写字母中独立、等概率地选一个。第一位有二十六种可能,下一位也一样,逐位相乘得到 26 的十二次方。它描述的是一种生成方式,不是在给某个人现有的密码打分。
如果实际选的是一个喜欢的十二字母单词,字母表的算法就不再描述选择过程。人的偏好会把概率集中到熟悉的模式上。加一个可以预料的后缀也不会消除这种集中。长度计能准确数出字符,却可能漏掉字符从何而来这一关键。
多四个随机字母,差多少
离线计算比较三种模型:十二个随机小写字母、十六个随机小写字母,以及从 7,776 个词中独立等概率抽取六个词。对应的选择量约为 56.4、75.2 和 77.5 比特。这里的比特是可能数量以二为底的对数。
多四个字母会把第一个空间精确放大 456,976 倍,但这不是破解时间预测。猜测速度受服务限速、密码存储方式、硬件和已知信息影响。我们没有运行猜测软件,没有查看泄露资料,也没有测试任何账户。

长引文不会自动变随机
从电影里记住的六个词,与独立抽出的六个词来自不同过程;前者的顺序可能很多人都知道。个人经历、常见字符替换和重复模式也有类似问题。计数的价值在于公开假设,而不是给每个长句都贴上漂亮的数字。
密码管理器能生成并保存不同账户的独立密码,不必为每个账户编记忆故事。必须记住的密码可以采用可信的随机选词方法。结果应私下保管,不要照抄文章中的示例。因此,这篇文章刻意没有给出可直接使用的密码。
不复用解决另一种问题
即使随机密码很强,多个服务共用它也会削弱重要保护。某个服务泄露后,对已经知道原字符串的人来说,不可预测性就没有用了。独立密码能限制这种连带影响,却不会消除共用恢复邮箱或既有登录会话带来的依赖。
日常应优先保护密码管理器和主要恢复邮箱,启用可用的更强登录保护,保持恢复方式有效,并考虑常用设备丢失后的安排。若主人无法恢复访问,或认不出真正的登录页,再漂亮的数学指标也不是完整的账户保护方案。

数字要连同假设一起读
选词模型允许词语重复,因为每次抽取独立。禁止重复会稍微改变算法;为了读起来顺口而挑词,则会改变得更多。不同服务对空格、长度和字符的支持也不一样。应遵循可用范围,但不能把繁复的字符要求当作良好选择过程的替代品。
今天若只做一件事,可以从一个复用密码的账户开始,通过真正的服务入口换成独立生成的密码,妥善保存,并确认恢复方式仍可使用。日常不必计算对数。这次计算只是帮助理解:不可预测的过程,应与能够坚持的习惯结合。
