Comment Bcrypt vérifie-t-il les mots de passe hachés avec des sels aléatoires ?

Barbara Streisand
Libérer: 2024-10-20 17:08:29
original
470 Les gens l'ont consulté

How Does Bcrypt Verify Hashed Passwords with Random Salts?

Comprendre Bcrypt et les sels générés aléatoirement

Bcrypt, un algorithme standard de l'industrie pour le hachage sécurisé des mots de passe, utilise un sel aléatoire pour améliorer la protection des mots de passe . Cependant, les utilisateurs peuvent se demander comment fonctionne le processus de vérification tout en tenant compte de cet élément apparemment aléatoire.

Le rôle de Salt

Le sel sert de préfixe unique ajouté au mot de passe avant hachage. Cette valeur aléatoire garantit que chaque mot de passe produit un hachage distinct même s'il est identique. En utilisant un sel imprévisible, les attaquants ne peuvent pas précalculer les hachages de mots de passe, ce qui rend beaucoup plus difficile la compromission des comptes d'utilisateurs.

Structure du mot de passe haché

Alors que le sel est généré de manière aléatoire , il est inclus dans le mot de passe haché résultant. Le mot de passe haché comprend plusieurs parties, notamment :

  • Type d'algorithme (dans ce cas, bcrypt)
  • Paramètre de coût (déterminant l'intensité de calcul du hachage)
  • Aléatoire salt
  • Mot de passe haché

Processus de vérification

Lors de la vérification d'un mot de passe, le mot de passe haché est fourni à l'algorithme bcrypt. L'algorithme extrait la partie sel et l'utilise pour hacher le mot de passe fourni.

Ce processus reflète essentiellement l'opération de hachage initiale qui a généré le mot de passe haché. Si le hachage nouvellement généré correspond au hachage stocké, le mot de passe fourni est vérifié comme étant correct.

Exemple

Considérons un mot de passe haché généré pour le mot de passe "password":

y$abcdefg...123456789...
Copier après la connexion
  • $2y indique l'algorithme bcrypt
  • 10 est le paramètre de coût
  • abcdefg... est le sel
  • 123456789... est le mot de passe haché

Pour vérifier si le "mot de passe" est correct, ce qui suit est utilisé :

crypt("password", "y$abcdefg...123456789...")
Copier après la connexion

Le résultat de cette opération sera identique au hachage généré à l'origine si "mot de passe" est correct. En effet, le sel est contenu dans le mot de passe haché, permettant de recréer l'opération de hachage d'origine.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal