php - 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帖子上,所以我试了一下。
提前致谢!
解决方案
相同的值可以用不同的“代码”进行散列
登录使用:
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
return "login sucess";
}
else{
return "fail";
}
推荐阅读
- javascript - 我有一个 NodeJS 后端,我正在开发与 ReactJS 前端一起工作,但我不断收到 500 错误
- android - mXparser 结果舍入
- python - 从熊猫数据框中删除与另一个数据框中的列组合不匹配的行
- django - 提交时的注册页面导致错误 Django
- python - 有没有一种在离线环境中安装“pip”、“模块”和“依赖项”的有效方法?
- amazon-web-services - aws iot 规则查询语句“union”
- php - 关于带字符串的 PHP 数组
- tabs - IllegalArgumentException:原因短语不能为空。仅出现在选项卡和模拟器选项卡中
- mysql - 两个不同服务器之间的数据库关系
- python - 根据相关ManyToMany另一个Model id的id过滤查询模型的结果