bcrypt et sels générés aléatoirement
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.
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).
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.
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 :
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.
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.
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