Comment comparer deux mots de passe bcrypt
$pass1 = '$2y$10$ooPG9s1lcwUGYv1nqeyNcO0ccYJf8hlhm5dJXy7xoamvgiczXHB7S';
Et
$pass2 = '$2y$10$QRgaiS6bpATKKQeT22zGKuHq.edDfXQc2.4B3v.zaN.GtGwoyQuMy';
$ Pass1 et $ pass2 sont tous deux bcrypt pour "test".
Comment puis-je vérifier l'égalité. sans utiliser le texte 'test' comme celui-ci
$hash1 = Hash::make('test');
$hash2 = Hash::make('test');
var_dump(Hash::check('test', $hash1) && Hash::check('test', $hash2));
Vous ne pouvez pas réellement comparer deux mots de passe bcrypt chiffrés directement en tant que chaînes, car le chiffrement contient du sel, ce qui rend les hachages différents à chaque fois.
if(Hash::check('plain-text-password',$cryptedpassword)) {
// Right password
} else {
// Wrong one
}
Vous pouvez simplement utiliser la méthode Hash::check()
par exemple:
if(Hash::check('plain-text', $hashedPassword)) {
return true;
}
référence https://laravel.com/docs/5.5/hashing
Vous pouvez essayer de cette façon:
if (Hash::check('test', bcrypt('test'))) {
return 'match!!';
}else{
return 'not match!!';
}
vous pouvez comparer le hachage chiffrer le mot de passe en utilisant Hash
.
mais notez que dans cette méthode, la première valeur doit être plain-text
et deuxième bcrypt
valeur.
Hash::check('test', bcrypt('test'))