Php Hash::make不';t为相同的输入生成相同的值
我的代码Php Hash::make不';t为相同的输入生成相同的值,php,hash,laravel-5,Php,Hash,Laravel 5,我的代码$pass和$confirm\u pass具有相同的输入,但在散列后具有不同的值 $pass = '12345678'; $Password = **Hash::make**($pass); //after hashing: $2y$10$acEYvpJSbaftfrabwBCNruCW32lkJejBdT92jQVSNIMeL7gtPvseK $confirm_pass = '12345678'; $Password_Confirmation = **Hash::make**($
$pass
和$confirm\u pass
具有相同的输入,但在散列后具有不同的值
$pass = '12345678';
$Password = **Hash::make**($pass);
//after hashing: $2y$10$acEYvpJSbaftfrabwBCNruCW32lkJejBdT92jQVSNIMeL7gtPvseK
$confirm_pass = '12345678';
$Password_Confirmation = **Hash::make**($confirm_pass);
//after hashing: $2y$10$HcCvNiwlZAUnt9RgQuXJ1.06H8ri8HdUa3tzbCCe9jvs3PtBHWGJK
经过验证后,我得到了这一行:
{“密码”:[“密码确认不匹配”“]}
从laravel安全文档中我找到了以下代码 要创建哈希密码,请使用以下代码
$password = Hash::make($pass);
并对其进行验证
if (Hash::check($pass, $password))
{
// The passwords match...
}
更多文件可从
Hash::make()即使在密码相同的情况下也不会生成相同的哈希,因为每个哈希都是单独添加的,所以Hash::make()的每个输出都是不同的
正如Nishant所说,您需要使用
Hash::check()
来验证Hash,密码和密码确认的比较应该在散列之前完成。我想补充的是,这是故意的,并且使散列函数更加安全。