Bcrypt - 迭代次数/成本是多少?

时间:2011-10-01 20:16:16

标签: cryptography bcrypt

我读过一些文章说你应该把成本设定为至少16(2 16 ),而其他人说8左右就可以了。

是否有关于成本应该设定多高的官方标准?

3 个答案:

答案 0 :(得分:10)

您应该使用的成本取决于您的硬件(和实施)的速度。

一般来说,8或10的成本很好 - 没有任何明显的延迟。它仍然是一个巨大的保护水平,远远优于任何使用SHA和盐的本土解决方案。一旦升级硬件,你可以将成本增加到16。我会说16在这个时候有点高,并且可能会导致明显的(和令人讨厌的)延迟。但是如果16对你有用,那么一定要去吧!

答案 1 :(得分:9)

您必须将迭代次数设置为仍为“可容忍”的最大值,具体取决于您使用的硬件和用户的耐心。越高越好。

迭代计数的重点是使密码处理速度变慢 - 也就是说,使“尝试”潜在密码的攻击者速度变慢。越慢越好。不幸的是,提高迭代次数对你来说也很慢......

根据经验,考虑到攻击者通过平均尝试大约10百万(10 7 )的潜在密码来破解密码。如果你设置迭代次数使得密码哈希需要1秒钟,并且你认为攻击者的计算能力可以比你多10倍,那么它将需要10 7 * 1/10秒,即大约12天。如果您设置迭代计数,以便密码哈希在您的PC上只需0.01秒,那么攻击者将在三小时内完成。

答案 2 :(得分:3)

费用应取决于您的硬件。

您应该测试费用设置并瞄准100 .. 500 ms间隔。当然,如果您正在处理高度敏感的信息,则时间可能是1000 ms甚至更多。