Laravel est un cadre de développement Web PHP populaire. Le chiffrement des mots de passe est une exigence commune dans le développement de Laravel, car le stockage de mots de passe en texte brut peut présenter des risques de sécurité. Laravel fournit un algorithme de hachage de mot de passe local puissant et facile à utiliser - Bcrypt. Cet article expliquera comment comparer deux mots de passe cryptés Bcrypt dans Laravel.
Bcrypt est un algorithme de hachage de mot de passe basé sur l'algorithme de chiffrement Blowfish, qui améliore la sécurité en ajoutant des valeurs de sel et de coût. L'algorithme BCrypt épissant le mot de passe avec du sel et le chiffre à l'aide de Blowfish, puis produit une valeur de hachage de 60 caractères. Ce qui suit est password_hash()
en utilisant php
Dans Laravel, vous pouvez facilement comparer les mots de passe en texte clair avec des mots de passe de chiffre d'affaires après le hachage BCrypt en utilisant la méthode hash :: check () . La méthode Check () comparera le mot de passe en clair avec le mot de passe crypté. Si les deux sont cohérents, revenez vrai.
if (hash :: check ('Secret', $ hashedpassword)) { // Si les deux chaînes sont cohérentes, retournez vrai }
Ici, $ hashedpassword est la valeur de hachage BCrypt enregistrée dans la base de données.
Lorsque vous utilisez la méthode Check () , assurez-vous de vous assurer que le premier paramètre est le mot de passe en texte clair et que le deuxième paramètre est le mot de passe de hachage chiffré. Vous pouvez vous souvenir des formules suivantes:
"Avec BPP, comparez le poêle": le premier paramètre est le mot de passe en texte clair (b), et le deuxième paramètre est la valeur de hachage Bcrypt cryptée (PP). C'est-à-dire que le premier paramètre peut être cassé, mais le deuxième paramètre est sûr.
Voici un exemple complet de comparaison de deux hachages Bcrypt:
$ mot de passe = 'secret'; $ hashedpassword = '2 $ 10 $ $ ljrd9sgr0h1ksk8vvqvcmoz0sqfpz1t2qkzckluxgdf9yoljxaf / 6'; if (hash :: check ($ mot de passe, $ hashedpassword)) { Echo 'Motword Match a réussi! ';; } autre { Echo 'Mot de mot de passe a échoué! ';; }
Notez que la méthode Check () compare non seulement si les deux chaînes sont égales, il vérifie également que la chaîne de hachage utilise l'algorithme de cryptage correct et garantit qu'il est formaté correctement.