2017-12-07 4 views
0

Ich benutze sha512.js Datei und aus Sicherheitsgründen sende ich mein Passwort als Hash-Wert mit Post-Anfrage. Jetzt möchte ich mit dem Speichern von Hash-Passwort in der Datenbank überprüfen. Wenn ich meinen Browser überprüfe Es kann Passwort als Hash-Wert gesehen werden. Dann bekomme ich in meiner PHP-Datei den Passwortwert mit der Postanfrage. dann möchte ich es mit Datenbank gespeicherten Wert überprüfen.Was ist die Methode zu prüfen, Protokollierung Hash verschlüsselte Passwort übereinstimmt mit gespeicherten Hash Passwort in der Datenbank

mein post request Passwort Wert wie - 7d4ad2ce44e568064beb480525a563daf85c676795f4083b7e177553af273ffecff41c2bbbe64428d9c0ca37744bcea4de218d356037337bcd41129bb1681b13

$email = $_POST['email']; 
$passwordFromPost = $_POST['p']; 

// $passwordFromPost = '7d4ad2ce44e568064beb480525a563daf85c676795f4083b7e177553af273ffecff41c2bbbe64428d9c0ca37744bcea4de218d356037337bcd41129bb1681b13'; 

mein Datenbank-Passwort ist -:

$hashedPasswordFromDB = '$2y$11$2Nmsc11WWGZ1xEB8P3zWCezVv4QCe48BVQ8vJbXOkByUXIioWH.AS' 

if (password_verify($passwordFromPost, $hashedPasswordFromDB)) { 
    echo 'Password is valid!'; 
} else { 

wie mit db Hash-Wert post request Hash-Wert überprüfen.

+1

Gibt es einen bestimmten Grund, warum Sie das Passwort im Browser hashen, bevor Sie es an den Webserver senden? Wenn Sie https (wie Sie sollten) verwenden, müssen Sie dies nicht tun –

+0

Senden Sie den gleichen Hash über den Registrierungsbildschirm, wenn Sie den Benutzerdatensatz erstellen? –

+0

Ich sende Passwort-Wert und speichert in der Datenbank seinen Hash-Wert. dann password line vancab12390909 und hashvalue wird in der db wie $ 2y $ 11 $ 2Nmsc11WWGZ1xEB8P3zWCezVv4QCe48BVQ8vJbXOkByUXIioWH.AS – user2552863

Antwort

2

Hash nicht das Passwort im Client, senden Sie es in einfachen Text in POST-Daten mit HTTPS. Wenn Sie einen Hash des Passworts senden, wird der Hash als Passwort verwendet.

Mit PHP verwenden password_hash und password_verify, das Paar ist sicher und einfach zu bedienen.

Weitere Informationen: Beim Speichern eines Passwort-Verifizierers mit nur einer Hash-Funktion ist nicht ausreichend und nur ein Salz hinzufügen tut wenig, um die Sicherheit zu verbessern. Verwenden Sie stattdessen eine Funktion wie PBKDF2, Rfc2898DeriveBytes, Argon2, password_hash, Bcrypt oder ähnliche Funktionen mit einer Dauer von etwa 100ms. Der Punkt ist, dass der Angreifer viel Zeit damit verbringen muss, Passwörter mit roher Gewalt zu finden.