Ich habe Benutzerkonto-Passwörter in einer Datenbank mit einer unsicheren (alten) kryptografischen Hash-Funktion gespeichert.
Was ist der beste / übliche Ansatz zum Ändern der Passwort-Hash-Funktion? Mir fallen nur zwei Ideen ein:
-
Fordern Sie alle Benutzer auf, ihre Kennwörter bei der nächsten Anmeldung zu ändern und ihre Kennwörter mit einer neuen Funktion zu versehen, wenn sie dies tun. Dies ist aufgrund vieler Probleme (inaktive Benutzer, lange Migrationsdauer, komplizierte Implementierung ...) keine gute Option.
-
Hash die alten Hashwerte mit der neuen Hashfunktion und re -Schreibe die Methode zum Überprüfen von Passwörtern anhand der Datenbank: newHash (salt + oldHash (salt + password))
ol>
Dieses doppelte Hashing scheint mir eine gute Idee zu sein, sowohl elegant als auch elegant einfach zu implementieren.
Ich würde gerne wissen, ob es irgendwelche Einschränkungen gibt, die ich hier nicht bemerke. Wird dies normalerweise so gemacht oder gibt es eine andere Methode? Gibt es eine bekannte kryptografische Schwachstelle bei der Verwendung der Ausgabe einer schwachen Hash-Funktion als Eingabe einer starken Hash-Funktion?
Wenn es eine gute Idee ist, was ist mit Salt? Wäre es in Ordnung, für beide Hash-Funktionen dasselbe Salz zu verwenden?