我的代码$pass
和$confirm_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
我在验证后得到这一行:
{"密码":[" 密码确认不符合。"]}
答案 0 :(得分:1)
Hash::make()
也不会生成相同的哈希,因为每个哈希都是单独加盐的,因此Hash :: Make()的每个输出都是不同的。
正如Nishant所说,您需要使用Hash::check()
来验证哈希值
答案 1 :(得分:0)
从laravel安全文档中我找到了以下代码,
创建哈希密码,使用下面的代码
$password = Hash::make($pass);
并验证
if (Hash::check($pass, $password))
{
// The passwords match...
}
可以从中找到进一步的文件 http://laravel.com/docs/4.2/security