10

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

是否有任何官方标准来规定成本应该设置多高?

4

3 回答 3

10

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

一般来说,8 或 10 的成本就可以了——没有任何明显的延迟。它仍然是一个巨大的保护水平,比任何使用 SHA 和盐的本土解决方案都要好得多。升级硬件后,您可能会将成本增加到 16。我会说此时 16 有点高,并且可能会导致明显(和烦人的)延迟。但是,如果 16 对你有用,那就去吧!

于 2011-10-01T21:37:49.160 回答
10

根据您使用的硬件和用户的耐心,您必须将迭代次数设置为仍然“可以容忍”的最大值。越高越好。

迭代计数的全部意义在于使密码处理变慢——也就是说,使“尝试”潜在密码的攻击者变慢。越慢越好。不幸的是,提高迭代次数也会让你变慢......

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

于 2011-10-02T14:09:57.643 回答
3

成本应该取决于您的硬件。

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

于 2012-10-09T21:04:44.723 回答