alltools.one
Security
2025-06-29
7 min
alltools.one Team
PasswordEntropySecurityCryptographyAuthentication

密码熵详解:什么才是强密码

当网站告诉你密码是"弱"还是"强"时,它测量的是熵——密码的数学随机性。理解熵可以帮助你创建真正安全的密码,而不仅仅是难以输入的密码。

什么是熵?

熵以比特为单位衡量密码的不可预测性。每增加一比特熵,攻击者需要尝试的可能密码数量就翻一倍。计算公式为:

Entropy = log₂(C^L)

其中:

  • C = 字符集大小
  • L = 密码长度

另一种表示:Entropy = L × log₂(C)

各字符集的熵

字符集字符池大小 (C)每字符比特数
仅数字 (0-9)103.32
小写字母 (a-z)264.70
小写字母 + 数字365.17
大小写混合 (a-z, A-Z)525.70
大小写混合 + 数字625.95
所有可打印 ASCII 字符956.57

计算示例

  • password(8 个小写字母):8 × 4.70 = 37.6 比特 — 几秒钟即可破解
  • P@ssw0rd(8 个混合字符):8 × 6.57 = 52.6 比特 — 数小时可破解
  • correct-horse-battery-staple(28 个小写字母 + 符号):由于长度优势,有效熵远高于上述

长度 vs. 复杂度

这是一个反直觉的事实:长度对熵的贡献比复杂度更大

密码长度破解时间(每秒 10 亿次猜测)
Xy7!426.3 比特< 1 秒
Xy7!Qp2$852.6 比特142 年
mysimplepassword1675.2 比特12 亿年
correct horse battery22103 比特宇宙热寂之后

一个 16 位纯小写密码比一个包含所有字符类型的 8 位密码更强。这就是为什么现代安全指南(NIST SP 800-63B)推荐使用长密码短语,而非短的复杂密码。

"复杂度规则"的问题

传统密码策略(必须包含大写、小写、数字、符号)适得其反:

  1. 可预测的模式:用户将首字母大写,末尾添加 1!Password1!
  2. 降低可记忆性:复杂密码被写在便利贴上
  3. 虚假安全感:8 位"复杂"密码的熵低于 16 位简单密码

现代指南(NIST)建议:

  • 最少 8 位字符,推荐 15+ 位
  • 无组合规则(大写、符号等)
  • 对照已泄露密码数据库检查
  • 允许所有可打印字符,包括空格
  • 无强制定期更换

密码短语策略

密码短语使用随机单词代替随机字符:

method: pick 4-6 random words from a dictionary
example: "timber quantum spoon velocity"
entropy: 4 words × ~12.9 bits/word (from 7,776-word list) ≈ 51.7 bits
better:  6 words ≈ 77.5 bits

Diceware 方法使用包含 7,776 个单词的列表(6^5,对应五次掷骰子)。每个单词增加 12.9 比特的熵。

优势

  • 容易记忆(你可以将单词可视化)
  • 长度够长(自然达到 20-35 个字符)
  • 足够多的单词即可获得高熵
  • 容易输入

使用我们的密码生成器生成安全的随机密码和密码短语。

真实攻击速度

熵只有在相对攻击速度下才有意义:

攻击类型速度40 比特密码60 比特密码80 比特密码
在线(限速)1,000/秒12.7 天36,559 年3800 万年
离线(CPU)10 亿/秒1.1 秒36.5 年38,334 年
离线(GPU 集群)1 万亿/秒< 1 秒13 天38 年
国家级1 千万亿/秒< 1 秒< 1 秒14 天

对于有限速和锁定机制的在线账户,40+ 比特就足够了。对于离线攻击(窃取的密码哈希),80+ 比特是最低要求。这就是为什么存在 Argon2 和 bcrypt 等密码哈希算法——它们使每次猜测的代价都很高。

密码管理器的数学优势

密码管理器从根本上改变了等式:

  • 一个强主密码:80+ 比特熵(6+ 个单词的密码短语)
  • 其他所有密码:随机生成、128+ 比特、每个网站唯一
  • 无重复使用:一个网站的泄露不影响其他网站

支持密码管理器的数学证据是压倒性的。单个重复使用的密码,无论多强,都不如每个网站使用唯一弱密码安全,因为一次泄露就会危及所有账户。

评估你的密码

评估密码强度时,考虑以下几点:

  1. 是否在泄露数据库中? — 即使"强"密码,如果已经泄露也是不安全的(可在 haveibeenpwned.com 查询)
  2. 是否随机? — 人为选择的密码的熵远低于随机生成的密码
  3. 如何存储? — 使用 cost factor 12 的 bcrypt 相比纯 MD5 增加约 22 比特的有效熵

更多关于安全密码生成的信息,请参阅我们全面的密码生成指南

常见问题

我需要多少比特的熵?

对于有限速功能的在线账户:最少 40-50 比特。对于保护加密数据的密码(磁盘加密、密码管理器主密码):80+ 比特。对于加密密钥:128+ 比特。正确答案取决于你保护的是什么,以及可能攻击你的是谁。

在密码中添加符号是否显著增强了安全性?

添加一个符号将字符池从 62 扩大到 95,每个字符增加约 0.6 比特。对于 8 位密码,大约多出 5 比特——相当于多加一个小写字母。长度几乎总是比增加字符类型更值得投入。

相关资源

Published on 2025-06-29
Password Entropy Explained: What Makes a Password Strong | alltools.one