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

Inicio de sesión de PHP utilizando datos de MySQL y contraseña hash

En lugar de usar MD5 o intentar descifrar la contraseña, como han sugerido otros aquí, simplemente use el contraseña_hash() función que comprueba automáticamente si la contraseña es correcta para usted.

Cifre la contraseña así:

$unencrypted_password = 'secret!'; 
$encrypted_password = password_hash($unencrypted_password,  PASSWORD_DEFAULT);

Luego inserte en su base de datos así:

INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);

Cuando desee verificar si la contraseña es correcta, seleccione la contraseña de la base de datos con:

SELECT encrypted_password FROM users WHERE username = $username;

Finalmente, verifique que la contraseña sea correcta usando passoword_verify() :

$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
    echo 'correct password!';
} else {
    echo 'password incorrect!';
}

Tenga cuidado de protegerse contra la inyección de SQL, ya que el código anterior es vulnerable.