如何设置强密码:长度、熵与密码管理器
“至少包含一个特殊字符”这类规则大家都很熟悉,但真正让密码变强的是随机性和长度。算一算就能清楚看出为什么有些密码很弱。
密码是如何被破解的
攻击者主要使用三种方法:撞库,即用从其他网站泄露的用户名和密码去尝试登录;字典攻击,即尝试常见密码和单词;以及暴力破解,即尝试所有组合。
现实中的大部分损失来自第一种。无论密码多复杂,只要重复使用,你用过的最薄弱的网站就可能让所有账户暴露。每个网站使用不同的密码,比密码强度更重要。
用熵衡量强度
随机生成的密码强度用熵的比特数衡量:长度 × log2(可选字符数)。每增加 1 比特,攻击者需要尝试的次数就翻一倍。
6 位数字 PIN 码约为 20 比特,只有一百万种可能,计算机瞬间就能试完。从 94 个可打印 ASCII 字符中随机选 12 个约为 79 比特,16 个随机小写字母约为 75 比特。
6 位数字 : 6 × log2(10) ≈ 20 比特
16 个随机小写字母 : 16 × log2(26) ≈ 75 比特
从 94 种中随机选 12 个 : 12 × log2(94) ≈ 79 比特
16 个随机字母和数字 : 16 × log2(62) ≈ 95 比特
这些数字只在随机选择时成立。像 Password1! 或生日组合这样由人想出来的密码看似多变,却排在所有攻击字典的前列,实际熵几乎为零。
为什么长度胜过复杂度
如上表所示,增加长度比增加字符种类更能有效提高熵。美国国家标准与技术研究院(NIST)的数字身份指南(SP 800-63B)同样建议允许长密码,并与已泄露密码列表比对,而不是强制要求字符组合规则。
对于必须记住的密码,由 4 到 6 个互不相关的随机单词组成的密码短语效果很好。从 7,776 个单词的列表中随机选 6 个,约有 77 比特,同时依然好记。但单词必须通过骰子或生成器随机选取,而不是自己挑。
应避免的模式
这些模式都已写进破解规则,被攻破的速度远比看上去快。
- 能在社交媒体上查到的姓名、生日、电话号码或车牌号。
- 键盘连续按键,如 qwerty、1q2w3e4r 或 asdf。
- 单词后面加数字或 !(例如 summer2026!)。
- a→@、o→0 之类的替换,破解工具默认就会尝试。
- 只改数字来轮换密码(pass01 → pass02)。
实际可行的方案:密码管理器与双重验证
没有人能为每个网站记住一个不同的 20 位随机密码。密码管理器是现实的解决方案:你只需记住一个强主密码短语,其余交给生成器创建和保存。
再加上双重验证——身份验证器应用、安全密钥或通行密钥——这样仅凭泄露的密码也无法登录。请优先保护你的邮箱账户,因为它是所有其他账户重置密码的通道。
密码生成器要检查什么
好的生成器使用操作系统提供的密码学安全随机数生成器。Math.random 这类通用函数是可预测的,不适合生成密码。
AIBIZAP 密码生成器可以选择长度和字符集。如果某个服务不允许特殊字符,就改为增加长度:16 个字母和数字已经约有 95 比特。对于 API 客户端 ID 和密钥这类机器用的机密信息,请使用客户端凭据生成器。