什么是熵
熵是把可能的密码组合数用以 2 为底的对数尺度(比特)表示的值。例如 40 比特约为 1 万亿种,60 比特约为 100 亿亿种组合。
熵大致按「长度 × log2(字符池大小)」计算。增加长度是提升熵最可靠的方法。
暴力破解 vs 字典攻击
暴力破解是依次尝试所有可能组合的方式,因此熵越高,所需时间就越长到不切实际。
字典攻击则优先尝试常见密码、单词和泄露列表。所以无论多长,只要是常见单词或模式,都会瞬间被攻破。这正是随机性重要的原因。
哈希与泄露
设计良好的网站不会以明文保存密码,而是保存为哈希值。但一旦数据泄露,攻击者就能在离线状态下每秒尝试数十亿次猜测。
此时又长又随机的密码会让破解成本高到无法承受,从而实际上依然安全。
需要多强
实用的参考标准如下。
- 低于 28 比特:非常弱(瞬间被攻破)
- 40~60 比特:一般(不重要的账户)
- 60~100 比特:强(足以应对大多数账户)
- 100 比特以上:非常强(长期安全)