


Le sel généré aléatoirement affecte-t-il la vérification du mot de passe avec bcrypt ?
Oct 20, 2024 pm 05:12 PMbcrypt 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, du sel 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 :
- Un préfixe d'algorithme ($2y$), un facteur de charge de travail (par exemple, 10) et du sel (par exemple, abcdefg...)
- 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.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Travailler avec les données de session Flash dans Laravel

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

Construisez une application React avec un Laravel Back End: Partie 2, React

12 meilleurs scripts de chat PHP sur Codecanyon
