Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je déchiffrer un hachage de mot de passe en PHP ?

Bcrypt est un algorithme de hachage unidirectionnel, vous ne pouvez pas décrypter les hachages. Utilisez password_verify pour vérifier si un mot de passe correspond au hachage stocké :

<?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.';
}

Dans votre cas, exécutez la requête SQL en utilisant uniquement le nom d'utilisateur :

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

Et faites la validation du mot de passe en PHP en utilisant un code similaire à l'exemple ci-dessus.

La façon dont vous construisez la requête est très dangereuse. Si vous ne paramétrez pas correctement l'entrée, le code sera vulnérable aux attaques par injection SQL. Voir cette réponse Stack Overflow sur la façon d'empêcher l'injection SQL.