Es ist sicherer, wenn ein Angreifer Zugriff auf die Datenbank erhält, die die gehashten Kennwörter enthält.
Mehrfache Hashes verlangsamen den Angreifer um einen Faktor, der linear zur Anzahl der Hash-Iterationen ist, während die einfachen Kennwörter aus den Hashes mit Brute-Force-Angriffen erraten werden.
In dieser Perspektive würde ich sagen, dass 10 eine eher kleine Zahl ist und wenn dieser Fall (ein Angreifer Zugriff auf Passwörter Datenbank bekommt) ist ein Anliegen für Sie, ich denke, es ist besser zu mehr Iterationen als 10 (sagen wir 1000).
Edit: Ich habe gerade bemerkt, dass die Wiederholung Hash in der Frage immer das Original-Passwort verwendet, und es wird immer und immer nicht wieder wie im folgenden Code-Hashing
var hash = sha512(salt+":"+user+":"+passwd);
for(i = 0; i < 10; i++)
hash = sha512(salt+":"+user+":"+hash);
Meine Antwort auf diesen Fall bezieht sich (hashing den Hash immer und immer wieder) und nicht auf den Code in der Frage erwähnt.
Ich bin nicht sicher, aber ich würde sagen, dass Nutzen sein könnte. '" somepassword ">" some-hash "', wenn Sie es mehrmals hasen, würde es nicht in einer solchen Tabelle gefunden werden, oder es würde erfordern, dass diese Tabelle 10-mal größer ist. – pie6k
Dieses genaue Stück Code? Es ist genau dasselbe wie einmal SHA512 zu laufen - es gibt keine tatsächliche Änderung der Entropie. Es dauert höchstens etwas länger (um Brute Forcing zu verhindern), aber ich bezweifle wirklich, dass es effektiv sein wird. – vlaz
Das wiederholte Ausführen desselben Hashs wird immer sicherer, da das erneute Erstellen der Hashes in einer Brute-Force-Methode rechenintensiver wird. Überprüfen Sie einige der Antworten auf [diese Frage] (http://softwareengineering.stackexchange.com/questions/115406/is-it-more-secure-to-hash-a-password-multiple-times) – castis