web-dev-qa-db-fra.com

Comment comparer deux mots de passe cryptés (bcrypt) dans laravel

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));
13
Jija

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.

5
Joseph
if(Hash::check('plain-text-password',$cryptedpassword)) {
    // Right password
} else {
    // Wrong one
}
21
Martin

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

5
Rahul Reghunath

Vous pouvez essayer de cette façon:

if (Hash::check('test', bcrypt('test'))) {
    return 'match!!';
}else{
    return 'not match!!';
}
2
bharat

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'))
1
pankaj kumar