小写字母+数字 · 16
82.7
bit · 10^24.9
小写字母+数字 16 位 — 82.7 位熵
每个字符承载 5.17 位,共 82.7 位,组合数为 10 的 24.9 次方。要用 94 个 ASCII 字符达到同样强度,需要 12.6 个。
- 长度
- 16
- 字符集大小
- 36
- 每个字符的位数
- 5.17 bit
- 总位数
- 82.7 bit
- 组合数
- 10^24.9
- 换成 ASCII 相当于
- 12.6
网站是怎么存的
- NTLM(Windows)437079.3 年
- MD5768417.9 年
- SHA-25610^6.8 年
- WPA2 Wi-Fi10^10.7 年
- bcrypt10^11.8 年
同一个密码,因存储方式不同,答案可以相差一百万倍以上。一张 RTX 4090 每秒能试 2885 亿次 NTLM、1641 亿次 MD5,而 bcrypt 只有 18.4 万次——bcrypt 是故意做慢的。所以含符号的 8 位 ASCII 密码在用 NTLM 的地方不到三小时就破,在用 bcrypt 的地方能撑五百多年。而用哪种,输密码的人无从选择。
这张表算什么、不算什么
这里的时间假设密码是**随机选取**并从头到尾穷举的。人编的密码撑不了这么久——词典词、键盘顺序、生日,以及结尾加的 ! 和 1,攻击方会先试。"P@ssw0rd!" 按九位 ASCII 算是 59 位,实际几秒就破。反过来,显卡多几张,时间就除以几。
相邻长度
同一字符集,不同长度
同一长度,不同字符集
最常见的事故不是被破解
更常见的是:从一个网站泄露的密码,被原样拿到另一个网站去试。哪怕要几年才能破的密码,只要两处共用,弱的那边被攻破的当天它也一起完了。比加长更优先的是**不重复使用**和开启两步验证。
怎么看这一页
- 每个字符的位数 = log2(字符集大小),再乘以长度就是总数。
- 破解时间 = 组合数的一半 ÷ 每秒尝试次数。
- 速度取自 hashcat 在单张 RTX 4090 上的公开实测值。
- 这些数字假设密码是随机的。人编的会早得多被破。
常见问题
Q. 小写字母+数字 16 位是多少熵?
82.7 位。每个字符 5.17 位,再乘以 16。
Q. 一共有多少种组合?
10 的 24.9 次方,也就是 36 自乘 16 次。
Q. 换成 ASCII 相当于几位?
12.6 位,按含符号的 94 个 ASCII 字符计。
Q. 破解要多久?
取决于存储方式。一张 RTX 4090 每秒能试 2885 亿次 NTLM,却只有 18.4 万次 bcrypt,时间相差一百万倍以上。