Bcrypt是一种密码哈希函数,设计为缓慢且计算成本高,使其能够抵抗暴力破解攻击。它是安全存储密码的行业标准。
Bcrypt的工作原理
Bcrypt使用Blowfish密码与盐值和成本因子。成本因子(轮次)决定算法执行多少次迭代 - 每增加一次,计算时间加倍,使攻击呈指数级困难。
为什么使用Bcrypt?
与快速的MD5/SHA(对密码不利)不同,bcrypt故意设计得很慢。这使得暴力破解攻击变得不切实际。成本为10意味着2^10(1,024)次迭代,哈希需要约100ms - 对于登录来说可以忽略不计,但对于尝试数十亿密码的攻击者来说是致命的。
安全最佳实践
大多数应用程序使用成本10-12。成本10是当前推荐的最低值。切勿将MD5或SHA-1用于密码 - 它们已被破解。切勿存储明文密码。始终使用bcrypt、Argon2或scrypt进行密码哈希。