![](/img/trans.png)
[英]How to use MD5 instead BCrypt for password in Laravel 5.3?
[英]How can I change to bcrypt instead of md5 in Laravel Auth login check
我正在使用 Hesto/multi-auth
创建新的身份验证模块后,我能够注册用户,但是当我尝试使用相同的凭据登录时,登录尝试失败。 所以我更新了RegisterController.php->create()
方法并将密码加密从默认的bcrypt
更改为md5
(同时存储它)。然后我通过注册创建了另一个用户,然后登录成功。
所以要理解这个问题:我的 Laravel 版本是在登录/检查密码时使用 md5 加密比较“密码”。 但我想继续使用bcrypt
来注册和登录(在两个用例中)。 我应该如何更改登录方法以使用bcrypt
而不是md5
?
我的 Laravel 版本:5.5.28
protected function create(array $data)
{
return Shopowner::create([
'name' => $data['name'],
'email' => $data['email'],
//'password' => bcrypt($data['password']),
'password' => md5($data['password']),
]);
}
我的laravel版本在登录/检查密码时使用md5加密来比较“密码”。 但是我想继续使用bcrypt进行注册和登录(在两个用例中)。
在您的config/hashing.php
文件中,将驱动程序更改为bcrypt
我应该如何更改登录方法以使用bcrypt而不是md5?
在您的RegisterController
,使用Hash::make($data['password']);
而不是bcrypt
或md5
函数,以确保使用驱动程序对密码进行哈希处理
解:
尽管它似乎不是本地的laravel代码。 但是有人改变了它的核心,使其可以使用md5
而不是bcrypt
在\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\EloquentUserProvider.php
[###]中,该行已被注释掉,并添加了新的if块以与md5
/**
* Validate a user against the given credentials.
*
* @param \Illuminate\Contracts\Auth\Authenticatable $user
* @param array $credentials
* @return bool
*/
public function validateCredentials(UserContract $user, array $credentials)
{
$plain = $credentials['password'];
/* MD5:: This block is custom and added to work with md5 */
/* ======================== */
if(md5($plain) == $user->getAuthPassword())
{
return true;
}
else{
return false;
}
/* ======================== */
/* Bcrypt:: This line is proper to work with default bcrypt */
//### return $this->hasher->check($plain, $user->getAuthPassword());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.