La práctica general es la siguiente:
- Obtener
password
hash de la base de datos donde elusername
=el nombre de usuario ingresado. - Si se encuentran filas, entonces hay un usuario
- Ahora compara la contraseña ingresada con el hash almacenado en la base de datos.
Describiré el flujo anterior en un pseudocódigo para usted aquí:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Notas
- Dejar de usar
mysql_*
funciones La biblioteca está obsoleta porque no es confiable y se eliminará en futuras versiones de PHP.- Es mejor usar PDO o Declaraciones preparadas de MySQLi
- Siempre debe leer el manual -
password_verify()
, establece claramente que compara la "contraseña ingresada por el usuario" con la versión hash que está almacenada en su base de datos.