凌晨两点,安全团队的朋友给我发来一张截图:他们拿一张 RTX 4090 对着公司内网一轮巡检扫出来的弱口令哈希跑字典,10 分钟破了一半。我的工位密码就在里面,8 位数字,我生日。
那一刻我意识到,我所谓的“密码安全”,在 GPU 面前就是个笑话。
---
熵,就是密码的不确定性总量,单位是 bit,直接决定了攻击者要试多少次才能蒙对。
计算公式:`熵 = 长度 × log2(字符集大小)`。
纯数字字符集是 10(约 3.3 bit/位),小写字母 26(约 4.7 bit/位),大小写+数字+符号 95(约 6.6 bit/位)。
为什么不用“密码强度条”?因为那玩意是前端 JS 糊弄你的,`Admin@123` 在很多网站能评到“强”,但在字典攻击里活不过 3 秒。
熵不看你的密码“长得像不像强密码”,只看组合数。冷冰冰,但诚实。
直接上数据。以单张 RTX 4090 跑 NTLM 哈希(每秒约 1000 亿次猜测)为基准:
| 密码类型 | 熵值 | 理论破解时间 |
|---|---|---|
| 8 位纯数字 | 26.6 bit | 不到 0.001 秒 |
| 8 位小写字母 | 37.6 bit | 约 2 秒 |
| 8 位混合字符 | 52.7 bit | 约 1.5 小时 |
| 12 位混合字符 | 78.8 bit | 约 7 万年 |
看到了吗?8 位到 12 位,差了整整 10 个数量级。
为什么长度这么狠?因为每加一位,组合数乘一次字符集大小。8 位纯数字是 1 亿种组合,12 位混合是 95 的 12 次方,约 5×10²³ 种——这个数字和阿伏伽德罗常数一个量级。
很多人以为暴力破解就是从 `000000` 试到 `999999`。醒醒,没人这么傻。
字典攻击:攻击者拿 RockYou、CSDN 库这些历史泄露的几亿条真实密码做成字典,先跑一遍,命中率能到 60% 以上。
为什么你的“复杂”密码也在字典里?因为 `Admin@123`、`Zhangwei@1995` 这种“姓名+生日+符号”的构造模式,早被规则引擎穷尽了。你以为的个性化,其实是批量模板。
撞库:攻击者拿到 A 网站泄露的邮箱密码对,去 B、C、D 网站批量试登录。你从没注册过的网站知道你密码,不是它被黑了,是你注册过的地方被黑了。
GPU 的角色是什么?拿到泄露的哈希库后离线跑,不受网站登录限速约束。MD5 哈希每秒能试千亿级,bcrypt 只能试几万次——所以同样一个密码,存在烂哈希和好哈希的网站里,安全性差百万倍。但你控制不了网站用什么哈希,你只能控制密码本身的熵。
密码管理器:一个强主密码 + 全站唯一随机密码,这是唯一能根治撞库的方案。Bitwarden、KeePass 都行,别赌运气说自己能记住 50 个不同密码。
两步验证(2FA):哪怕密码泄露,攻击者也登不进去。TOTP 验证器比短信强,短信验证会被 SIM 卡劫持绕过。
密码构造原则:长度优先于花哨。`correct-horse-battery-staple` 这种四词组合(约 44 bit 熵 + 自然语言随机性)比 `P@ssw0rd!` 强得多,还好记。
想知道你自己的密码在 GPU 面前能撑多久?算收益不能拍脑袋,算熵也一样。可以直接用本站的密码强度检查,输入即算熵值和暴力破解时间预估,本地运行不上传,试试就知道你的密码是“秒破”还是“万年”。
---
Q1:我用了大小写和特殊符号,是不是就安全了?
不一定。`Admin@123` 符合所有复杂度规则,但在字典攻击里活不过 3 秒。规则引擎会自动尝试 o→0、a→@ 这类替换,你的“聪明变形”早被穷尽了。
Q2:网站提示“密码强度:强”,可以信吗?
基本不能。大部分前端强度条只检查是否包含大小写和符号,不跑字典、不识别常见模式。唯一可靠的指标是熵值和是否出现在泄露库里。
Q3:密码管理器本身被黑了怎么办?
正规管理器只存加密后的 vault,主密码不上服务器,就算被拖库攻击者也解不开。相比之下,你脑子里那套“姓名+生日+123”的体系在撞库面前才是真正的裸奔。
评论列表 (0条)