如何比较两个bcrypt密码
$pass1 = '$2y$10$ooPG9s1lcwUGYv1nqeyNcO0ccYJf8hlhm5dJXy7xoamvgiczXHB7S';
并且
$pass2 = '$2y$10$QRgaiS6bpATKKQeT22zGKuHq.edDfXQc2.4B3v.zaN.GtGwoyQuMy';
$ pass1& $ pass2是'test'的bcrypt。
我如何检查平等性。不使用像这样的文本'test'
$hash1 = Hash::make('test');
$hash2 = Hash::make('test');
var_dump(Hash::check('test', $hash1) && Hash::check('test', $hash2));
答案 0 :(得分:19)
if(Hash::check('plain-text-password',$cryptedpassword)) {
// Right password
} else {
// Wrong one
}
答案 1 :(得分:5)
您实际上无法将两个加密的bcrypt密码直接比较为字符串,因为加密包含盐,每次都会使哈希值不同。
答案 2 :(得分:4)
您只需使用Hash::check()
方法即可
例如:
if(Hash::check('plain-text', $hashedPassword)) {
return true;
}
答案 3 :(得分:2)
您可以尝试这种方式:
if (Hash::check('test', bcrypt('test'))) {
return 'match!!';
}else{
return 'not match!!';
}
答案 4 :(得分:0)
您可以使用 Hash
比较哈希加密密码。
但请注意,在此方法中
第一个值应为 plain-text
,第二个 bcrypt
值。
Hash::check('test', bcrypt('test'))