Heim >Backend-Entwicklung >PHP-Tutorial >Wie verifiziert man ein Benutzerkennwort anhand eines Salted Hash in einer Datenbank?
Beim Erstellen sicherer Anwendungen ist der Umgang mit Salted-Passwörtern von entscheidender Bedeutung. Es kann jedoch schwierig sein, Benutzerkennwörter effektiv anhand gespeicherter Salted-Hashes zu überprüfen. Dieser Artikel führt Sie durch die Schritte zum Abrufen eines Salted-Passworts aus einer Datenbank und zur Authentifizierung des Benutzers.
Abrufen des Salted-Passworts:
Der folgende Beispielcode zeigt dies So rufen Sie den gesalzenen Passwort-Hash aus einer MySQL-Datenbank mithilfe einer MySQL-Verbindung ab:
<?php $servername = 'localhost'; $username = 'root'; $pwd = ''; $dbname = 'lp001'; $connect = new mysqli($servername,$username,$pwd,$dbname); if ($connect->connect_error){ die('connection failed, reason: '.$connect->connect_error); } $name = mysqli_real_escape_string($connect, $_POST['name']); $saltQuery = "SELECT salt FROM users WHERE name = '$name';"; $result = mysqli_query($connect, $saltQuery); if ($result === false){ die(mysqli_error()); } $row = mysqli_fetch_assoc($result); $salt = $row['salt']; ?>
Dieser Code stellt eine Verbindung zur Datenbank her, bereinigt die Benutzereingaben und ruft den mit dem angegebenen Benutzernamen verknüpften Salt aus der Benutzertabelle ab . Der Salt ist für die Verifizierung des Passworts unerlässlich.
Verifizierung des Benutzerpassworts:
Sobald der Salted-Passwort-Hash abgerufen wurde, können Sie überprüfen, ob das vom Benutzer bereitgestellte Passwort übereinstimmt Es. Der folgende Code zeigt, wie das mit den Funktionen „password_hash()“ und „password_verify()“ geht:
<?php $password = mysqli_real_escape_string($connect, $_POST['password']); $saltedPW = $password.$salt; $hashedPW = hash('sha256', $saltedPW); $sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW'"; if (mysqli_query($connect, $sqlQuery)){ echo '<h1>Welcome to the member site '.$name.'</h1>'; }else{ echo 'error adding the query: '.$sql_q.'<br> Reason: '.mysqli_error($connect); } ?>
Hier wird das bereitgestellte Passwort mit dem abgerufenen Salt gesalted und dann mit einer sicheren Hash-Funktion gehasht. Das gehashte Passwort wird dann mit dem in der Datenbank gespeicherten gehashten Passwort verglichen. Wenn die Passwörter übereinstimmen, wird der Benutzer authentifiziert.
Durch Befolgen dieser Schritte können Sie effektiv ein Salted-Passwort aus einer Datenbank abrufen und das Passwort des Benutzers überprüfen, ohne das tatsächliche Passwort preiszugeben. Dieser Ansatz gewährleistet die Sicherheit der Benutzeranmeldeinformationen und bietet gleichzeitig eine effiziente und sichere Authentifizierung.
Das obige ist der detaillierte Inhalt vonWie verifiziert man ein Benutzerkennwort anhand eines Salted Hash in einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!