Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verifiziert man Benutzerkennwörter sicher mit der Funktion „password_verify' von PHP?

DDD
Freigeben: 2024-10-28 11:16:01
Original
396 Leute haben es durchsucht

How to Verify User Passwords Securely with PHP's password_verify Function?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!