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

Connexion PHP à l'aide de données MySQL et d'un mot de passe haché

Plutôt que d'utiliser MD5 ou d'essayer de déchiffrer le mot de passe - comme d'autres l'ont suggéré ici - utilisez simplement le code natif de PHP password_hash() fonction qui vérifie automatiquement si le mot de passe est correct pour vous.

Chiffrez le mot de passe comme ceci :

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

Insérez ensuite dans votre base de données comme suit :

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

Lorsque vous voulez vérifier si le mot de passe est correct, sélectionnez le mot de passe dans la base de données avec :

SELECT encrypted_password FROM users WHERE username = $username;

Enfin, vérifiez que le mot de passe est correct en utilisant passoword_verify() :

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

Veillez à vous protéger contre l'injection SQL, car le code ci-dessus y est vulnérable.