什么是 bcrypt?
bcrypt 是一种为密码存储设计的密码哈希算法。它会将密码与随机盐结合,并根据成本因子重复执行高开销计算,因此攻击者测试每个猜测都需要更多时间。
何时使用此工具
- 为测试账户、种子脚本或本地开发环境生成 bcrypt 哈希。
- 比较不同成本因子如何改变输出格式和运行时间。
- 创建可直接复制的哈希,而无需将密码发送到服务器。
如何选择成本因子
更高的成本值速度更慢,通常也更安全,但也会让应用中的每次登录尝试变慢。交互式系统常用 10-12 左右的成本;对于仅限管理员或低流量的工作流,更高的值也可能合适。请在与实际验证密码相同类型的硬件上测试成本。
注意事项
- 每次生成的哈希都会使用新的随机盐,因此即使密码和成本保持不变,输出也会变化。
- 存储 bcrypt 哈希,而不是原始密码。
- bcrypt 用于密码,不用于文件校验和、签名或通用哈希。
- 保持验证行为恒定,并避免透露用户账户是否存在。