← 返回文章列表

密码为什么不能直接哈希:加盐与慢哈希

口令哈希安全

为什么不能只用 SHA

SHA 速度快,攻击者可以用彩虹表或字典对海量密码瞬间反查。给密码加同一个盐只能挡彩虹表,挡不住针对单个哈希的暴力破解。

正确做法

  1. 每个用户独立加盐:盐随机生成、随哈希一起存,不必保密但必须唯一;
  2. 用慢哈希算法:bcrypt / scrypt / Argon2 故意算得慢、可调成本,拖慢暴力破解;
  3. 提高工作因子:随着硬件变快逐步调高,但别高到影响登录体验。

泄露之后

  • 强制重置:通知用户改密码,而不是「建议」;
  • 加额外验证:可疑登录要求第二步验证;
  • 别明文发密码:「忘记密码」应发一次性重置链接,而不是把原密码发回来(说明你存了明文)。

动手试试

生成强密码与校验哈希:密码生成器、哈希计算。