为什么密码安全如此重要?

根据 2024 年网络安全报告,超过 80% 的数据泄露与弱密码有关。尽管安全技术不断进步,123456passwordadmin 仍然是最常用的密码,破解时间不到 1 秒。

密码熵:量化密码强度

密码熵(Entropy)是衡量密码强度的核心指标,单位是比特(bit)。熵值越高,密码越安全。

熵的计算公式

E = log₂(R^L)

其中 R 是字符集大小,L 是密码长度:

字符集 大小 8 位密码熵 12 位密码熵 16 位密码熵
纯数字 10 26.6 bit 39.9 bit 53.2 bit
小写字母 26 37.6 bit 56.4 bit 75.2 bit
大小写+数字 62 47.6 bit 71.4 bit 95.3 bit
全部字符 95 52.6 bit 78.9 bit 105.2 bit

推荐标准:12 位以上随机密码,熵值 > 70 bit。

实际破解时间

密码长度 纯数字 小写字母 大小写+数字+符号
8 位 < 1 秒 < 1 秒 ~8 小时
12 位 < 1 秒 ~2 小时 ~300 年
16 位 ~2 小时 ~200 年 ~5000 万年

密码安全最佳实践

1. 长度优先于复杂度

NIST SP 800-63B 最新指南推荐长密码(Passphrase)而非复杂规则。一个 4 词随机组合(如 correct-horse-battery-staple)比 8 位含特殊字符的密码更安全且更容易记忆。

2. 使用密码管理器

推荐使用专业的密码管理器(如 Bitwarden、1Password、KeePass)生成并存储所有密码。这样你只需要记住一个主密码。

3. 启用多因素认证(MFA)

为所有支持的服务启用 MFA,优先选择:

  • 硬件安全密钥(WebAuthn/FIDO2):最安全
  • TOTP 应用(如 Google Authenticator、Authy)
  • 短信验证码(SMS)作为最后选择

4. 服务端密码存储最佳实践

  • 永远不要存储明文密码
  • 使用 Argon2id(推荐)或 bcrypt(cost factor >= 12)
  • 每个用户使用独立的随机盐值(salt),长度至少 16 字节
  • 定期测试密码哈希算法

5. 密码泄露检测

集成 Have I Been Pwned API 检测用户密码是否已在数据泄露中曝光。目前数据库中已有超过 5 亿个泄露密码。

常见弱密码模式

  • 连续字符(如 123456、qwerty)
  • 重复字符(如 aaaa、111111)
  • 键盘序列(如 qazwsx、1qaz2wsx)
  • 个人信息(生日、姓名、手机号)
  • 常见单词加数字后缀(如 password123、admin2024)