"必须包含大写、小写、数字和符号"背后的真相

每次创建新账号时都会被告知:"密码必须至少 8 个字符,包含大写字母、小写字母、数字和符号。"很烦人对吧?但这条规则有着令人惊讶的历史,以及一个令人震惊的事实:它实际上并不太有效。

一切的起源 - 2004 年的 NIST 文件

密码复杂性规则的起源可以追溯到美国国家标准与技术研究院 (NIST) 于 2004 年 6 月发布的"NIST Special Publication 800-63"。该文件建议"密码应混合使用大写字母、小写字母、数字和符号",全球的 Web 服务纷纷采用了这条规则。

然而在 2017 年,该文件的作者 Bill Burr 在《华尔街日报》的采访中坦言"那些建议大部分是错误的"。复杂性规则只是导致用户创建像"P@ssw0rd!"这样可预测的模式,对实际安全性的提升贡献甚微。

为什么复杂密码没有想象中那么有效

人类对复杂性规则的反应出奇地可预测。

  • 需要大写字母?只把第一个字母大写(Password)
  • 需要数字?在末尾加 1 或 123(Password1)
  • 需要符号?在末尾加 !(Password1!)
  • 把"a"替换成"@","o"替换成"0"(P@ssw0rd)

攻击者非常清楚这些模式,并将它们包含在字典攻击列表中。换句话说,即使密码看起来很复杂,如果模式可预测,也很容易被破解。在反复试用泄露密码列表的撞库攻击中,这类可预测的密码总是被最先拿来尝试。

什么才是真正强大的密码

把重点从复杂性规则转向"长度"优先的,是 2017 年 6 月修订的 NIST 指南 (SP 800-63B)。该文件已被 2025 年 7 月发布的后续版本 SP 800-63B-4 取代,但"不得强制要求混合字符种类的组合规则""不得强制定期更改密码"这两项要求在新版中依然保留。新版还进一步规定,仅凭密码完成认证时,最小长度为 15 个字符。先掌握密码安全的基础,再落实以下措施。

  • 长密码(密码短语):由 4〜5 个随机单词连接而成的密码短语,如"correct horse battery staple",比短而复杂的密码更强且更容易记忆
  • 密码管理器:为每个服务生成和管理不同随机密码的工具。只需记住一个主密码,就能把密码重复使用降为零
  • 双因素认证 (2FA):在密码之外使用手机上的认证器应用或安全密钥。即使密码泄露也能防止未授权登录

算一算就能看清长度为何有效。从包含符号的 94 种字符中选出 8 个字符的随机密码,是 94 的 8 次方,约 6100 万亿种。而从 EFF 公开的 7776 个单词的词表中选 4 个单词组成的密码短语约为 3700 万亿种,到这里两者几乎势均力敌。差距出现在之后:即使把含符号的字符再加一个,候选也只增加到 94 倍,而多加一个单词就是 7776 倍。5 个单词的密码短语约有 2800 亿亿种,是 8 字符随机密码的约 4600 倍。在还记得住的范围内就能把位数拉长,这就是长度优先的理由。

全球最常用的密码

安全公司 NordPass 每年都会公布一份根据泄露数据统计的"常用密码"清单。具体排名逐年变动,但稳居前列的面孔几乎没有变化。

  • 123456
  • password
  • 123456789
  • 12345
  • 12345678

这些密码可以在不到一秒内被破解。即使密码以哈希形式存储,如此简单的密码也会使保护形同虚设。

总结

密码复杂性规则源自 2004 年的 NIST 文件,但作者本人承认它们是"错误的"。长密码短语比短而复杂的密码更强且更容易记忆。结合密码管理器和双因素认证,安全性会更上一层楼。在强化密码的同时,也不妨用IP 确认确认一下自己所处连接环境的安全状况。

本文相关术语

双因素认证 不仅依赖密码的认证方式。密码泄露时的最后防线。 加密 密码在服务器上使用哈希(单向加密)存储。 钓鱼 无论密码多强,在钓鱼网站上输入就意味着被盗。

常见问题

密码要求混合大写字母和符号的规则是谁定的?

起源于2004年6月美国国家标准与技术研究院(NIST)发布的文档。但2017年作者Bill Burr本人承认"那些建议大多是错误的"。

真正强的密码是什么?

比起短而复杂的密码,将4-5个随机单词连接起来的长密码短语更强大且更容易记忆。现行的NIST指南SP 800-63B-4(2025年)也禁止强制混合字符类型和定期更换,更重视长度。用密码管理器消除重复使用,再搭配双因素认证,即使密码泄露也能拦住登录。

全世界使用最多的密码是什么?

在泄露数据的统计中,"123456"、"password"、"123456789"每年都稳居前列,具体排名逐年变动。这些密码不到1秒就能被破解。