Insbesondere bei Verwendung des PASSWORD_DEFAULT Algorithmus, gemäß den php pageIst PHP password_hash() rückwärtskompatibel?
„Beachten Sie, dass diese Konstante ausgelegt ist, als neue und stärkere Algorithmen im Laufe der Zeit zu ändern, um PHP hinzugefügt werden. Aus diesem Grunde wird die Länge des Ergebnisses aus der Verwendung Dieser Bezeichner kann sich im Laufe der Zeit ändern. Daher wird empfohlen, das Ergebnis in einer Datenbankspalte zu speichern, die mehr als 60 Zeichen umfassen kann (255 Zeichen wären eine gute Wahl). "
und
„Hinweis: Updates zu unterstützten Algorithmen von dieser Funktion (oder Änderungen an der Standard eins) müssen die folgenden Regeln beachten: Jeder neue Algorithmus für mindestens 1 Vollversion von PHP in Kern sein muss vor Wenn also beispielsweise ein neuer Algorithmus in 7.5.5 hinzugefügt wird, wäre er erst ab 7.7 (da 7.6 die erste vollständige Version), aber in 7.6 wurde ein anderer Algorithmus hinzugefügt. 0, wäre es auch für den Standard bei 7.7.0 geeignet Der Standardwert sollte nur in einer vollständigen Version (7.3.0, 8.0.0, etc) und nicht in einer Revision Release ändern .. Die einzige Ausnahme ist in einem Notfall, wenn ein kritischer Sicherheitsfehler im aktuellen Standard gefunden wird. "
Wenn PHP auf eine Version aktualisiert wird, die einen anderen Algorithmus für PASSWORD_DEFAULT verwendet, verhindert das, dass Benutzer sich anmelden, wenn ihre Kennwörter mit dem alten Algorithmus hashed wurden?
Siehe die Dokumentation für 'password_verify' – PeeHaa
Danke. "Beachten Sie, dass password_hash() den Algorithmus, Kosten und Salt als Teil des zurückgegebenen Hash zurückgibt. Daher sind alle Informationen, die zur Überprüfung des Hash benötigt werden, enthalten. Dies ermöglicht der Verify-Funktion, den Hash zu überprüfen, ohne separaten Speicher für die Salz- oder Algorithmusinformationen. " – GregCatalano