"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Le sel généré aléatoirement affecte-t-il la vérification du mot de passe avec bcrypt ?

Le sel généré aléatoirement affecte-t-il la vérification du mot de passe avec bcrypt ?

Publié le 2024-11-10
Parcourir:862

Does Randomly Generated Salt Affect Password Verification with bcrypt?

bcrypt et sels générés aléatoirement

Contexte

bcrypt est un algorithme de hachage de mot de passe qui utilise le salage pour améliorer la sécurité. Le salage implique l'incorporation de données aléatoires dans le hachage du mot de passe, garantissant que même des mots de passe identiques produiront des résultats hachés différents.

Génération et hachage de sel

La classe PHP fournie comprend une fonction appelée genSalt() qui génère un sel aléatoire en utilisant la fonction openssl_random_pseudo_bytes(). Ce sel est ensuite utilisé dans le cadre du processus de hachage bcrypt dans la fonction genHash().

La fonction genHash() prend un mot de passe et le combine avec le sel généré aléatoirement. Le hachage résultant est un mélange du mot de passe d'origine, de salt et d'un préfixe spécifique à l'algorithme ($2y$) qui indique l'algorithme bcrypt et ses paramètres (par exemple, le facteur de charge de travail).

Vérification du mot de passe

Pour vérifier un mot de passe, la fonction verify() fournie compare le mot de passe saisi avec le hachage stocké. Pour ce faire, il concaténe le mot de passe fourni avec le hachage stocké et utilise la fonction crypt() pour le hacher à nouveau.

Comprendre la logique de comparaison de hachage

La clé pour comprendre pourquoi le sel généré aléatoirement n'affecte pas la vérification du mot de passe consiste à examiner le format du hachage stocké. Le hachage se compose de deux parties principales :

  1. Un préfixe d'algorithme ($2y$), un facteur de charge de travail (par exemple, 10) et du sel (par exemple, abcdefg...)
  2. Le mot de passe haché

Lorsque la fonction verify() hache le mot de passe fourni avec le hachage stocké, elle utilise uniquement la partie sel comme entrée. Cela garantit que le sel est incorporé dans le processus de vérification.

Conclusion

En résumé, alors que bcrypt génère des sels aléatoires pour garantir la sécurité du mot de passe, le processus de vérification du mot de passe ne prend en compte que la partie sel de le hachage stocké. Cela permet de vérifier le mot de passe fourni par rapport au hachage stocké, même si le sel est généré de manière aléatoire.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729415415. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3