Algorithm 对密码进行多次哈希运算有什么好处?

Algorithm 对密码进行多次哈希运算有什么好处?,algorithm,encryption,hash,Algorithm,Encryption,Hash,我见过很多例子,其中密码被多次散列。例如,在Symfony中,默认情况下,对密码应用sha512 5000次 我可以理解像连续2-3个sha512这样的东西,以避免在哈希已知时检索原始密码,但是应用5000次有什么必要?这增加了很多碰撞的风险,不是吗 好处是什么?这是一种愚蠢的、不安全的方式,通过将暴力攻击速度降低5000倍,使其不可行。无论你在读什么,作者都必须了解bcrypt或scrypt。告诉他。IMHO security.stackexchange.com是回答这个问题的好地方,例如,请

我见过很多例子,其中密码被多次散列。例如,在Symfony中,默认情况下,对密码应用sha512 5000次

我可以理解像连续2-3个sha512这样的东西,以避免在哈希已知时检索原始密码,但是应用5000次有什么必要?这增加了很多碰撞的风险,不是吗


好处是什么?

这是一种愚蠢的、不安全的方式,通过将暴力攻击速度降低5000倍,使其不可行。无论你在读什么,作者都必须了解
bcrypt
scrypt
。告诉他。

IMHO security.stackexchange.com是回答这个问题的好地方,例如,请参阅,或者我将投票结束这个问题,因为这与编程没有直接关系。这更适合任何一方(甚至)。@ArtjomB。StackOverflow上需要这个问题,因为多次散列是非常常见的错误。这个问题与密码学无关,而是最常见的软件设计。写服务器不一定非得是密码学家。问题是“我能理解2-3个sha512[…]之类的东西,但应用5000次有什么必要?”看起来你并没有回答这个问题。如果与2或3次相比,散列5000次肯定有一定的价值。而且,bcrypt和scrypt本质上是做同样的事情的,只是需要一个salt和更多的迭代(成本)以及一种稍微复杂一点的应用迭代的方法。@ArtjomB。散列5000次会产生更小的值集,即散列函数的固定点,从而破坏安全性。Bcrypt的“应用迭代的更精细的方式”使其加密安全。好的,这更接近于这个问题的实际答案。还是没有。这就是为什么这个问题更合适的原因,因为这个问题要么以重复的形式结束,要么在几分钟内得到正确的回答。