微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel Hash::check() 使用不同的盐和前缀

如何解决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 作为我的哈希来检查,这不起作用以及,我刚刚在另一个 stackoverflow 帖子中看到了这个,所以我试了一下。

提前致谢!

解决方法

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

登录使用:

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

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

好吧终于找到了。我首先必须从散列中获取盐并散列一次密码,然后验证它并且它可以工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。