“密码必须包含大小写、数字、特殊字符”——这条规则让无数人用了 P@ssw0rd123,自以为很安全。实际上它在字典攻击下几秒就能破解。真正决定密码强度的不是”复杂度”,而是熵。
密码熵:用比特衡量强度
熵的公式很简单:
熵 = log₂(字符集大小 ^ 密码长度)
对几种密码的对比:
| 密码 | 字符集 | 长度 | 熵(位) | 破解难度 |
|---|---|---|---|---|
12345678 | 数字 10 | 8 | 26.6 | 瞬间 |
password | 小写 26 | 8 | 37.6 | 秒级 |
P@ssw0rd | 大小写+数字+符号 | 8 | 52.6 | 小时级 |
horsebatterystaple | 小写 26 | 18 | 84.6 | 数千年 |
| 随机 12 位含所有字符 | 94 | 12 | 78.6 | 数百年 |
结论:18 位的全小写单词组合,比 8 位的”复杂密码”强几万倍。
为什么 P@ssw0rd 很弱
攻击者不会傻到从 aaaaaaaa 逐一尝试到 ZZZZZZZZ——那叫暴力破解,现代密码里很少发生。真正常用的是字典攻击:
- 拿到过去十几年泄漏的几十亿条真实密码
- 叠加常见替换规则:a→@、e→3、o→0、s→$
- 在字典末尾追加
123、!、2024等 - 用 GPU 每秒尝试几十亿次哈希
P@ssw0rd 百分百在这个字典里。哪怕你把它当成”从没见过的组合”,黑客的字典里早就有。
强密码的三条铁律
1. 长度 > 复杂度 12 位起步,16 位更好。每多一位,破解时间指数级增长。
2. 不用真词、不用生日、不用键盘顺序
qwerty、198505、asdf、110120 全在字典里。
3. 每个站一个密码 泄漏最大危害是”撞库”——一个站泄漏,攻击者拿去试你所有账号。最高效的防护是密码不一样,而不是密码多复杂。
Diceware:好记又强的密码
扔骰子从词表里抽 4-6 个词拼起来:correct horse battery staple。熵 70+ 位,好记好输入,安全性远超”复杂短密码”。现代浏览器密码管理器生成的也是这种结构。
什么时候必须用密码管理器
超过 10 个账号,就没有人能记住 10 个不同的高熵密码。密码管理器(KeePass/1Password/Bitwarden)只需记住 1 个主密码,其他全随机生成并保存。不用密码管理器的”记忆力方案”最终都会退化成密码重复使用。
生成 + 评级
用工具生成足够长的随机密码,或检测你现有密码的强度——系统会标出熵值、在已知泄漏库里的出现次数、以及到底”几秒能破”。