密码强度·十六进制 32
十六进制 · 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,时间相差一百万倍以上。