返回博客
教程

密码熵解释 — 为什么你的"复杂"密码比口令密码更弱

熵是衡量密码强度的唯一诚实指标。以下是如何计算它、攻击者破解不同级别需要多长时间,以及为什么四个随机单词通常比12个字符的"P@ssw0rd!"更好。

Admin2026年4月23日1 分钟阅读31

"设置复杂密码"是无用的建议。它告诉你添加符号和数字,仿佛这样就能保护密码安全。实际上不能。衡量密码强度的唯一诚实指标是,而大多数"复杂"密码在这方面的得分比你想象的要低。

熵实际衡量的是什么

熵是密码中的随机性位数 — 换句话说,就是攻击者通过暴力破解平均需要的猜测次数。它的计算公式是长度 × log₂(字符池大小)

示例:一个仅使用小写字母(字符池 = 26)的10个字符密码的熵为10 × log₂(26) ≈ 47位。一个使用小写、大写、数字和符号(字符池 = 88)的10个字符密码有10 × log₂(88) ≈ 64.6位。长度相同,但更大的字符池使每个字符更加强大。

多少位"安全"

粗略的现代阈值(假设密码被正确哈希并能在数据库泄露时存活 — 如果网站使用bcrypt或argon2,它应该):

  • 40位以下:单个GPU可在几分钟内破解。
  • 40–60位:认真的攻击者用GPU农场可在数小时到数周内破解。
  • 60–80位:对抗当今离线暴力破解是安全的。对个人账户来说是很好的目标。
  • 80–100位:对任何当前对手都有抵抗力,包括民族国家,在当前硬件的生命周期内。
  • 100+ 位:对任何现实的威胁模型都是过度的。

对任何保护金钱、身份或基础设施的东西瞄准80位。对你密码管理器的主密码瞄准100+位。

"复杂"密码陷阱

被要求创建"复杂"密码的用户会选择可预测的模式:首字母大写,末尾添加数字,将a替换为@Password1!是10个字符,看起来对人类来说很复杂。对破解者来说,它只是一个猜测 — 它出现在每个泄露密码字典中。

用户选择的密码的真实熵远低于其字符池大小所暗示的,因为人类不擅长保持随机。研究一致表明,无论声称的复杂性如何,它大约在20-30位。

为什么口令密码更优胜

口令密码是4-7个随机单词用破折号连接:garden-river-pencil-strong-sunset-bridge。从512单词列表中抽取的六个随机单词有6 × log₂(512) = 54位的熵 — 比大多数人用他们的"复杂"密码所能达到的还要多,而且记忆性也更强。

扩展到七个单词,你就能达到63位。从7776单词列表(Diceware)中抽取的八个单词给出103位。所有这些都很容易输入、容易记忆,并且对大多数字典攻击免疫(因为组合是随机的,即使每个单词都很常见)。

可发音密码:中间地带

对于必须通过电话口述密码的场景,可发音密码交替使用辅音和元音:baketomiloguno。每个音节(辅音+元音)有log₂(21 × 5) ≈ 6.7位的熵,所以六个音节给出约40位。

比口令密码更弱,但比典型的人类选择密码更强,最关键的是更容易大声读出来,不用问"那是O还是零"。

生成安全密码

不要依赖人类随机性。使用工具。aukimi密码生成器提供三种模式 — 随机、口令密码和可发音 — 带有实时熵表,所以你可以准确看到你的输出有多强。它使用crypto.getRandomValues(浏览器的密码学安全随机源)并应用拒绝采样来消除模偏。

最关键的是:生成完全在你的浏览器中进行。不会传输、记录或存储任何内容。打开你的开发者工具网络标签页面时生成 — 你会看到零请求离开页面。

唯一的规则

使用密码管理器。为每个网站生成一个长随机密码(你的密码管理器永远不会忘记它,所以长度对于可用性无关紧要)。使用口令密码作为你密码管理器的主密码 — 这是你必须记住的。

其他一切都是优化。把这一个模式做对,你就领先95%的用户了。

#password#security#entropy#passphrase

喜欢这篇文章吗?

ShareHN