首页/安全/加密与证书速查/口令存储方案选型
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

口令存储方案选型

现代口令存储可在 Argon2id、scrypt、bcrypt、PBKDF2 之间按环境能力选择,并设计参数升级策略;明文存储或单轮哈希不满足基本要求。

加密与证书速查安全更新于 2026-10-12

方案对照

方案抗 GPU 能力关键参数备注
Argon2id强内存 19-46 MiB、t=1-2、p=1新项目优先
scrypt强N=2^17、r=8、p=1库支持需确认
bcrypt中cost 10 以上72 字节上限
PBKDF2中偏弱SHA-256 迭代 600,000 次合规场景常见
单轮 SHA-256/MD5无-不可用于口令存储

渐进式升级思路(伪代码)

渐进式升级思路(伪代码)
login(user, pw):
  h = load_hash(user)
  if verify(pw, h) == False: return fail
  if h.algorithm != current_algorithm or h.params < current_params:
      store_hash(user, hash(pw))     # 用新参数重算
  return ok
存量迁移依赖散列前缀识别($1$/$2b$/$6$/$argon2id$),保留旧算法标识才能平滑升级。

易错点

  • 给散列加固定前缀做「加密」不算安全增强:前缀可读即无秘密,仍要靠算法与参数强度
  • 升级算法时不要一次性重置全员口令,采用登录时重算的渐进式迁移更平滑

数据来源与参考

  • OWASP Password Storage Cheat Sheet
  • RFC 9106
  • RFC 7914
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌