Hash::make 不会为相同的输入生成相同的值
Hash::make doesn't generate same value for same input
我有这段代码 $pass
和 $confirm_pass
有相同的输入但散列后有不同的值。
$pass = '12345678';
$Password = **Hash::make**($pass);
//after hashing: y$acEYvpJSbaftfrabwBCNruCW32lkJejBdT92jQVSNIMeL7gtPvseK
$confirm_pass = '12345678';
$Password_Confirmation = **Hash::make**($confirm_pass);
//after hashing: y$HcCvNiwlZAUnt9RgQuXJ1.06H8ri8HdUa3tzbCCe9jvs3PtBHWGJK
我在验证后得到了这一行:
{"password":["The password confirmation does not match."]}
我从 laravel 安全文档中找到以下代码,
要创建散列密码,请使用以下代码
$password = Hash::make($pass);
并验证它
if (Hash::check($pass, $password))
{
// The passwords match...
}
可以从以下位置找到更多文档
http://laravel.com/docs/4.2/security
Hash::make()
即使密码相同也不会生成相同的散列,因为每个散列都是单独加盐的,因此 Hash::Make() 的每个输出都是不同的。
正如 Nishant 所说,您需要使用 Hash::check()
来验证散列
我有这段代码 $pass
和 $confirm_pass
有相同的输入但散列后有不同的值。
$pass = '12345678';
$Password = **Hash::make**($pass);
//after hashing: y$acEYvpJSbaftfrabwBCNruCW32lkJejBdT92jQVSNIMeL7gtPvseK
$confirm_pass = '12345678';
$Password_Confirmation = **Hash::make**($confirm_pass);
//after hashing: y$HcCvNiwlZAUnt9RgQuXJ1.06H8ri8HdUa3tzbCCe9jvs3PtBHWGJK
我在验证后得到了这一行:
{"password":["The password confirmation does not match."]}
我从 laravel 安全文档中找到以下代码,
要创建散列密码,请使用以下代码
$password = Hash::make($pass);
并验证它
if (Hash::check($pass, $password))
{
// The passwords match...
}
可以从以下位置找到更多文档 http://laravel.com/docs/4.2/security
Hash::make()
即使密码相同也不会生成相同的散列,因为每个散列都是单独加盐的,因此 Hash::Make() 的每个输出都是不同的。
正如 Nishant 所说,您需要使用 Hash::check()
来验证散列