sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo descifrar un hash de contraseña en PHP?

Bcrypt es un algoritmo hash unidireccional, no puede descifrar hashes. Utilice password_verify para verificar si una contraseña coincide con el hash almacenado:

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

En su caso, ejecute la consulta SQL usando solo el nombre de usuario:

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

Y haz la validación de la contraseña en PHP usando un código similar al ejemplo anterior.

La forma en que está construyendo la consulta es muy peligrosa. Si no parametriza la entrada correctamente, el código será vulnerable a los ataques de inyección SQL. Consulte esta respuesta de desbordamiento de pila sobre cómo prevenir la inyección SQL.