Heim >Datenbank >MySQL-Tutorial >Wie verifiziert man Benutzerkennwörter sicher mit der Funktion „password_verify' von PHP?
Verschlüsselte Passwörter mit PHP entschlüsseln
Viele Anwendungen speichern Benutzerpasswörter sicher mithilfe von Verschlüsselungsalgorithmen wie „password_hash“. Bei der Validierung von Anmeldeversuchen ist es jedoch wichtig, das eingegebene Passwort mit der verschlüsselten, gespeicherten Version zu vergleichen.
Das Problem der Verschlüsselung
password_hash verwendet Bcrypt, ein ein- Way-Hashing-Algorithmus, was bedeutet, dass das verschlüsselte Passwort nicht rückgängig gemacht oder entschlüsselt werden kann. Hierbei handelt es sich um eine Sicherheitsfunktion, die sicherstellt, dass Angreifer selbst bei einer Kompromittierung der Datenbank nicht auf Klartext-Passwörter zugreifen können.
Die Lösung: Passwortüberprüfung
Zur Validierung von Benutzerpasswörtern , verwenden Sie die Funktion „password_verify“:
<code class="php">if (password_verify('input_password', $encrypted_password)) { // Password matches! } else { // Invalid password. }</code>
Diese Funktion vergleicht das eingegebene Passwort mit der verschlüsselten Version und gibt „true“ zurück, wenn sie übereinstimmen.
Ändern Ihrer SQL-Abfrage
Anstatt das eingegebene Passwort in die SQL-Abfrage einzuschließen, verwenden Sie die Parametrisierung:
<code class="php">$sql_script = 'SELECT * FROM USERS WHERE username=?';</code>
Dies schützt vor SQL-Injection-Angriffen, indem verhindert wird, dass böswillige Benutzer Ihre Abfrage manipulieren.
Beispiel
Hier ist ein Beispiel für die Verwendung von „password_verify“:
<code class="php">$username = $_POST['username']; $input_password = $_POST['password']; $sql_script = 'SELECT * FROM USERS WHERE username=?'; if ($result = $conn->query($sql_script, $username)) { if ($user = $result->fetch_assoc()) { if (password_verify($input_password, $user['password'])) { // Login successful! } else { // Invalid password. } } else { // User not found. } }</code>
Das obige ist der detaillierte Inhalt vonWie verifiziert man Benutzerkennwörter sicher mit der Funktion „password_verify' von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!