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