Sie können keine Hash-Funktion sooo Reverse ... Sie mit zwei Optionen links:
1 Force für Benutzer neues Passwort oder ...
2 Update der Hash als Benutzer einfügen Melden Sie sich erneut bei Ihrem System an (Sie können den Cookie und Sessions erzwingen, mit denen sich Benutzer anmelden können, ohne ihr Passwort erneut eingeben zu müssen). Diese Lösung ermöglicht es Ihren Benutzern, sich mit dem alten Hash einzuloggen und gleichzeitig den alten zu einem neuen zu aktualisieren. Wenn sich Ihr Benutzer das nächste Mal anmeldet, verwendet das Skript eine neue Hash-Version, um sich beim Benutzer anzumelden.
In diesem Beispiel habe ich MD5 als Hash verwendet, ich möchte auf BCRYPT mit Kosten = 12 aktualisieren, aber fühlen Sie sich frei, es zu ändern, was immer Sie brauchen. Änderung von BCRYPT Kosten = 10 zu BCRYPT Kosten = 12 würde auch funktionieren oder irgendeine andere Kombination. Betrachten Sie dieses Beispiel:
$passwordFromDatabase = "0d107d09f5bbe40cade3de5c71e9e9b7"; // md5 hash of "letmein"
$passwordFromForm = $_POST['password']; // $_POST['password'] == "letmein"
if(password_needs_rehash($passwordFromDatabase, PASSWORD_BCRYPT, ["cost" => 12]) && md5($passwordFromForm) === $passwordFromDatabase){
// generate new password
$newPasswordHash = password_hash($passwordFromForm, PASSWORD_BCRYPT, ["cost" => 12]);
// update hash from databse - replace old hash $passwordFromDatabase with new hash $newPasswordHash
// after update login user
if(password_veryfi($passwordFromForm, $newPasswordHash)){
// user has loged in successfuly and hash was updated
// redirect to user area
}else{
// ups something went wrong Exception
}
}else{
if($password_veryfi($passwordFromForm, $passwordFromDatabase)){
// user password hash from database is already BCRYPTed no need to rehash
// user has loged in successfuly
// redirect to user area
}else{
// wrong password
// no access granted - stay where you are
}
}
Ich bevorzuge die Option seckound :). Treffen Sie Ihre eigene Wahl. Wenn Sie die Option seckound auswählen und wählen, dass Sie die Cookie-Sitzung nicht kicken, die dem Benutzer erlaubt, sich einzuloggen, ohne das Passwort anzugeben, ist es auch in Ordnung ... Die Änderung wird über die Zeit hinweg stattfinden. Und niemand wird die Veränderung bemerken.
Sie können eine Hash-Funktion im Allgemeinen nicht umkehren. – user359996
Sie müssen den Unterschied zwischen Verschlüsselung und Hashing verstehen. – SLaks
Warum beschränkst du dein Salz auf hexadezimale Zeichen? – SLaks