我读过一些文章说你应该把成本设定为至少16(2 16 ),而其他人说8左右就可以了。
是否有关于成本应该设定多高的官方标准?
答案 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
甚至更多。