Maison  >  Article  >  base de données  >  Comment vérifier les mots de passe des utilisateurs sans décrypter les hachages à l'aide de la fonction « password_hash » de PHP ?

Comment vérifier les mots de passe des utilisateurs sans décrypter les hachages à l'aide de la fonction « password_hash » de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 02:01:03139parcourir

How to Verify User Passwords Without Decrypting Hashes Using PHP's `password_hash` Function?

Déchiffrement des hachages de mots de passe en PHP avec la fonction Password_hash

Question :

Vous devez déchiffrer un mot de passe crypté à l'aide de la fonction password_hash. En supposant que le mot de passe haché est stocké dans une base de données et que vous disposez d'un mot de passe en texte brut saisi par l'utilisateur, comment déterminer s'ils correspondent sans compromettre la sécurité ?

Réponse :

Bcrypt est l'algorithme de hachage utilisé par la fonction password_hash, et il est irréversible. Par conséquent, il n'existe aucun moyen direct de déchiffrer les mots de passe hachés.

Au lieu de cela, pour valider le mot de passe de l'utilisateur, suivez ces étapes :

  1. Récupérez le mot de passe haché de la base de données à l'aide d'une requête SQL qui sélectionne uniquement le nom d'utilisateur. Cela garantit la sécurité en empêchant les vulnérabilités d'injection SQL.
  2. Utilisez la fonction password_verify pour comparer le mot de passe en texte brut de l'utilisateur avec le mot de passe haché. Il renvoie vrai s'ils correspondent, indiquant une connexion valide.

Exemple de code pour la validation du mot de passe :

<code class="php">// Assume $hash is the hashed password from the database
if (password_verify($inputPassword, $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}</code>

Remarque importante :

Il est crucial de paramétrer les entrées utilisateur dans les requêtes SQL pour empêcher les attaques par injection SQL. Consultez la réponse Stack Overflow fournie pour obtenir des conseils sur cette pratique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn