Bcrypt如何使解密变慢?

时间:2016-08-19 18:08:47

标签: hash bcrypt

bcrypt算法内部会发生什么事情让人们说md5,sha1和sha256与盐有或没有盐相比很慢?

2 个答案:

答案 0 :(得分:2)

BCrypt有一个成本因子,它可以控制完成多少次哈希迭代。这个成本因素可以在未来增加,以适应更快的硬件。

成本系数将提高到2的幂,这意味着,将成本系数提高1,将使计算时间加倍。目前推荐值约为10-12,具体取决于您的服务器。

答案 1 :(得分:1)

SHA系列算法旨在为大输入有效地创建哈希。另一方面,bcrypt旨在对小输入执行计算上昂贵的操作(仅使用输入的前72个字节,但这对于大多数密码应该足够了。)

更具体地说,bcrypt使用输入salt和消息来执行Blowfish分组密码版本的密钥设置,该密码已被修改以使密钥设置更加昂贵。然后,该算法使用该密码加密已知的明文(OrpheanBeholderScryDoubt)。这就是为什么输入熵有72字节的限制--Blowfish算法只需要初始化有限数量的子键。

Wikipedia describes this process in more detail.