Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich einen Passwort-Hash in PHP entschlüsseln?

Bcrypt ist ein Einweg-Hashing-Algorithmus, Sie können keine Hashes entschlüsseln. Verwenden Sie password_verify um zu prüfen, ob ein Passwort mit dem hinterlegten Hash übereinstimmt:

<?php
// See the password_hash() example to see where this came from.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

Führen Sie in Ihrem Fall die SQL-Abfrage nur mit dem Benutzernamen aus:

$sql_script = 'SELECT * FROM USERS WHERE username=?';

Führen Sie die Passwortvalidierung in PHP mit einem Code aus, der dem obigen Beispiel ähnelt.

Die Art und Weise, wie Sie die Abfrage erstellen, ist sehr gefährlich. Wenn Sie die Eingabe nicht richtig parametrisieren, ist der Code anfällig für SQL-Injection-Angriffe. Siehe diese Stack Overflow-Antwort wie man SQL-Injection verhindert.