解读你的熵值结果
熵衡量搜索空间有多大,单位是比特。对于从大小为 \(N\) 的字符集中随机抽取、长度为 \(L\) 的密码,组合数为 \(N^L\),熵为:
$$E = \log_2\left(N^{L}\right) = L \cdot \log_2 N$$
例如,从 94 个可打印 ASCII 字符中选取的 12 位密码,\(E = 12 \times \log_2 94 \approx 12 \times 6.5546 =\) 78.66 比特,假设每个字符都是均匀随机选取的。
熵值等级
熵值
评级
含义
低于 40 比特
弱
快速的离线攻击者可能在几分钟甚至更短时间内穷举完毕。仅适用于严格限制猜测次数的场景。
40–60 比特
中等
能抵御随意的攻击,但可能被配备强大硬件的执着离线攻击者破解。
60–80 比特
强
对大多数攻击者而言已超出实际可及范围,但在较低端时,资源非常充足的攻击者针对快速哈希算法仍可能构成威胁。
80 比特以上
非常强
当密码真正随机时,以当前技术进行暴力破解是不可行的。
每增加一比特,工作量翻倍
每增加一比特熵,搜索空间就翻一倍。增加 10 比特,搜索空间会扩大 1,024 倍。平均而言,攻击者在搜索约一半的空间后即可找到随机选取的密码,即约 \(2^{E-1}\) 次猜测。
穷举搜索空间所需的示例时间
以下数据假设攻击者每秒进行 \(10^{10}\)(100 亿)次猜测,并取 1 年 ≈ \(3.156 \times 10^{7}\) 秒。这些数据仅为示例,并非预测。实际速率因哈希方法和硬件而有巨大差异。
熵值
搜索空间 \(2^E\)
全部尝试所需时间
平均时间(一半)
30 比特
≈ \(1.07 \times 10^{9}\)
≈ 0.11 秒
≈ 0.05 秒
40 比特
≈ \(1.10 \times 10^{12}\)
≈ 110 秒
≈ 55 秒
60 比特
≈ \(1.15 \times 10^{18}\)
≈ 3.7 年
≈ 1.8 年
80 比特
≈ \(1.21 \times 10^{24}\)
≈ \(3.8 \times 10^{6}\) 年
≈ \(1.9 \times 10^{6}\) 年
128 比特
≈ \(3.40 \times 10^{38}\)
≈ \(1.1 \times 10^{21}\) 年
≈ \(5.4 \times 10^{20}\) 年
重要注意事项
假设为均匀随机。该公式仅在每个字符都从完整字符集中独立且均匀地选取时成立,例如由随机数生成器生成。
人工选择的密码实际熵要低得多。可预测的单词、姓名、日期、键盘模式以及常见替换(例如将“a”替换为“@”)会大幅缩小有效搜索空间,因此对此类密码而言,计算出的数值只是一个上限。
攻击条件至关重要。在线猜测通常受速率限制或会被锁定,远比对被盗哈希值的离线破解慢得多。服务所使用的哈希算法会使猜测速率相差多个数量级。
相关标准。NIST SP 800-63B(一项关于数字身份的美国指南)强调密码长度、针对已泄露密码的筛查以及速率限制,而非任意的组成规则。它并未规定单一的熵值目标。
这只是关于熵如何计算的一般性科普信息,并非针对个人的安全建议。