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

Obt*_*bto 10 cryptography bcrypt

我读过一些文章说你应该把成本设置为至少16(2 16),而其他人说8左右是好的.

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

Joo*_*aij 10

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

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

  • 埃里克森 - 你能证实你的主张吗?(和你的downvote) (2认同)

Tho*_*nin 10

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

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

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