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“:
if (password_verify('input_password', $encrypted_password)) {
// Password matches!
} else {
// Invalid password.
}
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 einzuschließen Geben Sie das Passwort in die SQL-Abfrage ein und verwenden Sie die Parametrisierung:
$sql_script = 'SELECT * FROM USERS WHERE username=?';
Dies schützt vor SQL-Injection-Angriffen, indem böswillige Benutzer daran gehindert werden Bearbeiten Ihrer Abfrage.
Beispiel
Hier ist ein Beispiel für die Verwendung von „password_verify“:
$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.
}
}
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3