返回列表
密码存储最佳实践
核心原则
存储用户密码必须遵循以下安全原则:
- 绝不存储明文: 任何情况下都不能以明文形式保存密码。
- 使用慢哈希: 选择 bcrypt、Argon2 等内置加盐的慢哈希算法。
- 每个用户独立盐: 确保同一密码在不同用户中哈希不同。
- 定期升级算法: 随着计算能力提升,适时增加成本因子或迁移到更强算法。
实施建议
- 使用成熟的语言库(如 PHP password_hash、Python passlib)。
- 存储哈希时,直接存储 `password_hash` 返回的完整字符串(含算法和盐信息)。
- 验证时使用 `password_verify`,无需手动处理盐。
- 为新用户注册和密码修改使用最新算法和适当成本。
- 对存量密码,可在用户登录时使用 `password_needs_rehash` 检查并更新。
常见误区
- 使用 MD5/SHA 加盐代替慢哈希(仍可被快速破解)。
- 自行实现加盐和迭代(应使用标准库)。
- 成本因子设置过低或固定不变。
本工具生成的哈希完全符合上述最佳实践,可直接用于生产环境。