首页 > 解决方案 > Laravel Hash::check() 使用不同的盐和前缀

问题描述

我使用不同的数据库和表进行用户身份验证。现在我以当前的哈希为例:

'$2a$08$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO' = Test12345

但是当我使用它时,Hash::check('Test12345', '$2a$08$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO')它总是返回 false。所以我认为这是因为散列使用了不同的方法,所以前缀是 $2a 而不是 $2y 和 8 轮而不是 12。我已经尝试使用$2y$12$UU.AJY.bcf0uJAp12WZvy.XE6CCgNAmuX8Hr17Pfkh3FRyFHWhBtO作为我的 Hash 来检查,这也不起作用,我刚刚看到那在另一个stackoverflow帖子上,所以我试了一下。

提前致谢!

标签: phplaravelcryptographybcryptsalt

解决方案


相同的值可以用不同的“代码”进行散列

登录使用:

if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {

            return "login sucess";
        }
        else{
       
            return "fail";
        }

推荐阅读