Laravel Hash::check() 使用不同的盐和前缀
Laravel Hash::check() using different salt and prefix
我使用不同的数据库和 table 进行用户身份验证。现在我以当前哈希为例:
'a$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO' = Test12345
但是当我使用 Hash::check('Test12345', 'a$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO')
时,它总是 returns 错误。所以我认为那是因为散列使用了不同的方法,所以前缀是 $2a 而不是 $2y 和 8 轮而不是 12。我已经尝试使用 y$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO
作为我的散列来检查,这是行不通的还有,我刚刚在另一个 Whosebug post 上看到了,所以我试了一下。
提前致谢!
相同的值可以用不同的“代码”散列
登录使用:
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
return "login sucess";
}
else{
return "fail";
}
好的,终于找到了。我首先必须从散列中获取盐并将密码散列一次,然后验证它并且它有效。
我使用不同的数据库和 table 进行用户身份验证。现在我以当前哈希为例:
'a$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO' = Test12345
但是当我使用 Hash::check('Test12345', 'a$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO')
时,它总是 returns 错误。所以我认为那是因为散列使用了不同的方法,所以前缀是 $2a 而不是 $2y 和 8 轮而不是 12。我已经尝试使用 y$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO
作为我的散列来检查,这是行不通的还有,我刚刚在另一个 Whosebug post 上看到了,所以我试了一下。
提前致谢!
相同的值可以用不同的“代码”散列
登录使用:
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
return "login sucess";
}
else{
return "fail";
}
好的,终于找到了。我首先必须从散列中获取盐并将密码散列一次,然后验证它并且它有效。