根据长度和字符类型估算破解时间
密码的强度以其熵来衡量 — 即暴力破解攻击者在最坏情况下需要多少次猜测 — 这取决于密码的长度以及它所使用的不同字符类型的数量。输入您密码的组成方式(绝不是密码本身)即可估算其破解时间。
计算公式
字符集大小:小写字母 26 个,大写字母 26 个,数字 10 个,常见符号 32 个。
举例说明
一个 8 个字符、仅使用小写字母(26 个字符)的密码,在每秒 100 亿次猜测的条件下:
- 熵:
- 平均破解时间:
需要考虑的关键因素
- 此估算假设的是针对被盗密码哈希的离线暴力破解攻击,这比针对在线登录表单的猜测尝试要快得多。 大多数真实服务会对重复的登录失败尝试进行限速或锁定,这会让在线攻击者的速度远低于这里使用的每秒猜测次数——离线暴力破解(数据泄露暴露了密码哈希之后)才是这类估算真正最相关的场景。
- 常见密码、字典词或曾经泄露过的密码,被破解的速度会比其原始熵所暗示的快得多。 本计算器假设的是在完整字符集范围内进行真正均匀随机的暴力搜索——而真实攻击者通常会先尝试常见密码、字典单词和已知泄露过的密码,如果一个”按数学计算熵值很高”的密码实际上只是加了替换字符的常见单词,几乎可以瞬间被破解。
- 猜测速度因保护密码的哈希算法不同而差异巨大。 使用速度较慢、专为此设计的算法(如 bcrypt 或 Argon2)哈希的密码,其暴力破解所需时间可能比使用快速通用算法哈希的密码高出几个数量级——这是一个不取决于密码自身强度、而完全取决于存储该密码的服务如何实现安全措施的因素。
- 密码在现实世界中的安全性并不仅仅取决于破解时间的数学计算。 在多个账户重复使用同一密码、落入网络钓鱼陷阱,或被恶意软件截获,都会完全绕过这个暴力破解模型——关于超出纯粹熵值之外的更全面图景,请参见密码生成器计算器自身的”需要考虑的关键因素”部分。
常见错误
- 为了”检查”而输入真实的实际密码。 本计算器有意从不要求输入真实密码文本,只要求长度和字符类型——即使某个在线工具声称不会存储密码,在其中输入真实密码也是一种不必要的风险,最好完全避免。
- 误以为较高的破解时间估算就意味着可以放心重复使用该密码。 本计算器只衡量对暴力破解猜测的抵抗力——一个又长又高熵的密码如果在多个网站上重复使用,一旦其中任何一个网站发生数据泄露,无论其破解时间估算显示要花多少个世纪,该密码都会立刻完全暴露。
- 把由真实字典单词组成的密码短语当作等同于其计算出的熵值。 这里的数学计算假设的是在整个字符集上进行均匀随机搜索——由可识别的单词、姓名或模式构成的密码,实际破解速度往往比其原始长度和字符多样性所暗示的要快得多,因为真正的攻击者会先尝试可能性较高的猜测。
- 选择不切实际的猜测速度,并将结果当作精确值对待。 猜测速度会因攻击者的硬件和保护密码的哈希算法不同而相差数个数量级——请把破解时间估算当作一个大致的数量级,而不是精确的倒计时。
实用信息
- 需要真正生成一个新密码,而不是评估现有密码吗?密码生成器 可以使用加密安全的随机性,从选定的字符类型组合中生成随机密码。