密码强度

此工具绝不会要求您提供真实密码 -- 只需其长度和所使用的字符类型。

对比计算

下载

包含本次计算的输入与结果,以及您对比过的所有附加计算。

根据长度和字符类型估算破解时间

密码的强度以其熵来衡量 — 即暴力破解攻击者在最坏情况下需要多少次猜测 — 这取决于密码的长度以及它所使用的不同字符类型的数量。输入您密码的组成方式(绝不是密码本身)即可估算其破解时间。

计算公式

熵(比特)=长度×log2(字符集大小)\vA{\text{熵(比特)}} = \text{长度} \times \log_2(\text{字符集大小}) 平均破解时间=22×每秒猜测次数\vB{\text{平均破解时间}} = \frac{2^{\vA{\text{熵}}}}{2 \times \text{每秒猜测次数}}

字符集大小:小写字母 26 个,大写字母 26 个,数字 10 个,常见符号 32 个。

举例说明

一个 8 个字符、仅使用小写字母(26 个字符)的密码,在每秒 100 亿次猜测的条件下:

  1. 熵:8×log2(26)37.6 比特\vA{8 \times \log_2(26) \approx 37.6 \text{ 比特}}
  2. 平均破解时间:237.62×101010 秒\vB{\frac{2^{37.6}}{2 \times 10^{10}} \approx 10 \text{ 秒}}

需要考虑的关键因素

  • 此估算假设的是针对被盗密码哈希的离线暴力破解攻击,这比针对在线登录表单的猜测尝试要快得多。 大多数真实服务会对重复的登录失败尝试进行限速或锁定,这会让在线攻击者的速度远低于这里使用的每秒猜测次数——离线暴力破解(数据泄露暴露了密码哈希之后)才是这类估算真正最相关的场景。
  • 常见密码、字典词或曾经泄露过的密码,被破解的速度会比其原始熵所暗示的快得多。 本计算器假设的是在完整字符集范围内进行真正均匀随机的暴力搜索——而真实攻击者通常会先尝试常见密码、字典单词和已知泄露过的密码,如果一个”按数学计算熵值很高”的密码实际上只是加了替换字符的常见单词,几乎可以瞬间被破解。
  • 猜测速度因保护密码的哈希算法不同而差异巨大。 使用速度较慢、专为此设计的算法(如 bcrypt 或 Argon2)哈希的密码,其暴力破解所需时间可能比使用快速通用算法哈希的密码高出几个数量级——这是一个不取决于密码自身强度、而完全取决于存储该密码的服务如何实现安全措施的因素。
  • 密码在现实世界中的安全性并不仅仅取决于破解时间的数学计算。 在多个账户重复使用同一密码、落入网络钓鱼陷阱,或被恶意软件截获,都会完全绕过这个暴力破解模型——关于超出纯粹熵值之外的更全面图景,请参见密码生成器计算器自身的”需要考虑的关键因素”部分。

常见错误

  • 为了”检查”而输入真实的实际密码。 本计算器有意从不要求输入真实密码文本,只要求长度和字符类型——即使某个在线工具声称不会存储密码,在其中输入真实密码也是一种不必要的风险,最好完全避免。
  • 误以为较高的破解时间估算就意味着可以放心重复使用该密码。 本计算器只衡量对暴力破解猜测的抵抗力——一个又长又高熵的密码如果在多个网站上重复使用,一旦其中任何一个网站发生数据泄露,无论其破解时间估算显示要花多少个世纪,该密码都会立刻完全暴露。
  • 把由真实字典单词组成的密码短语当作等同于其计算出的熵值。 这里的数学计算假设的是在整个字符集上进行均匀随机搜索——由可识别的单词、姓名或模式构成的密码,实际破解速度往往比其原始长度和字符多样性所暗示的要快得多,因为真正的攻击者会先尝试可能性较高的猜测。
  • 选择不切实际的猜测速度,并将结果当作精确值对待。 猜测速度会因攻击者的硬件和保护密码的哈希算法不同而相差数个数量级——请把破解时间估算当作一个大致的数量级,而不是精确的倒计时。

实用信息

  • 需要真正生成一个新密码,而不是评估现有密码吗?密码生成器 可以使用加密安全的随机性,从选定的字符类型组合中生成随机密码。

来源: NIST SP 800-63B:数字身份指南(身份验证器).

常见问题

我需要输入我的真实密码吗?

不需要 -- 也不应该。此计算器只会询问您密码的长度和所使用的字符类型(小写字母、大写字母、数字、符号),绝不会询问实际密码本身。

密码破解时间是如何估算的?

此计算器根据密码的长度和字符集计算其熵(以比特为单位),然后估算以假设的猜测速度进行暴力破解的攻击者平均需要多长时间才能找到它 -- 平均而言为整个密钥空间的一半。

什么因素能让密码更强?

长度比字符种类更重要 -- 每增加一个字符都会使可能的组合数量成倍增加,而增加一种新的字符类型只会增加一个固定的倍数。仅使用少数几种字符类型的长密码,往往比使用所有类型的短密码更安全。

这是否考虑了常见密码或基于字典的密码?

不考虑 -- 此计算假设在整个字符集中进行真正均匀随机的搜索来计算熵。而真实的攻击者往往会先尝试常见密码、字典单词和此前已泄露的密码,如果一个密码实际上是一个可识别的单词或经过简单替换的模式,即使其理论熵很高,也可能几乎瞬间被破解。

这是在线还是离线的破解时间估算?

此模型模拟的是离线暴力破解攻击,例如针对被盗密码哈希值的攻击 -- 在这种场景下,较高的猜测速度是现实可行的。而针对实际登录表单的在线攻击,实际中通常慢得多,因为大多数服务会对连续多次登录失败进行限速或锁定。

确认您的年龄

为了创建账户,请告诉我们您的出生月份和年份。