你的密码有多弱?密码熵与暴力破解时间计算
密码强度=长度×log2(字符集大小)。8 位纯小写只有 37 位熵,GPU 几分钟破解;讲清熵的计算与安全密码的构造方法。
一、密码熵:强度的数学定义
密码熵(entropy)衡量不可预测性:
熵 = 长度 × log2(字符集大小)
- 小写字母 26 种 → 每字符约 4.7 bit
- 大小写+数字 62 种 → 每字符约 5.95 bit
- 全部可见字符 95 种 → 每字符约 6.57 bit
熵每多 1 bit,暴力破解工作量翻倍。一般认为 60 bit 以下偏弱,80 bit 以上较强。
二、算笔账:常见密码要破多久
- 8 位纯数字:熵约 26.5 bit,组合 1 亿,GPU 毫秒级跑完。
- 8 位小写字母:约 37.6 bit,现代 GPU 集群几分钟到几小时。
- 12 位大小写+数字:约 71 bit,单机穷举要数百年量级。
- 16 位随机全字符:约 105 bit, foreseeable 算力内不可行。
结论:长度比复杂度更值钱——每加一位字符的收益超过换花哨字符。
三、为什么字典攻击更狠
真实世界的破解不走纯穷举,而是先用字典 + 规则:
- 常见密码榜(123456、password、qwerty…)秒出。
- 「单词+年份」「拼音+生日」这类规律组合优先尝试。
P@ssw0rd123这种「替换变形」早在规则库里。
所以密码的不可预测性比表面复杂度更重要——人类自创的「聪明替换」在破解工具面前形同虚设。
四、正确做法
- 用随机生成的密码:密码管理器生成 16 位以上随机串,每个网站独立。
- 重要账号开两步验证:密码再强也只是单因素,2FA 把安全性提升一个量级。
- passphrase 备选:4-5 个随机单词(Diceware),长且好记,熵也够。
在线体验
不用装任何环境,直接用本站随机密码生成工具在线操作,数据都在浏览器本地处理,方便又安全。
常见问题
密码多长才安全?
随机密码 12 位起(大小写+数字),16 位更稳妥;如果是人类记忆的 passphrase,用 4 个以上不相关单词。定期强制更换已不推荐,改密码不如开 2FA。
P@ssw0rd 这种替换很安全吧?
不安全。字母替换、leet 变形是破解规则的标配,这类密码的「有效熵」远低于表面长度,几乎等同于原词。
为什么每个网站要用不同密码?
撞库攻击:一个网站泄露,黑客拿同一组密码去试其他网站。全站同密码等于把所有账号押在一个最弱网站的安保上。
