如何将密码从md5转换为laravel加密方法

php*_*per 3 encryption md5 password-encryption laravel laravel-5

我想将我现有的项目重新开发给laravel.

在我的旧系统中,我将密码存储到md5中.

现在我如何根据现有用户的laravel哈希方法对其进行转换.

有没有直接的方法呢?

Zak*_*rki 6

有没有直接的方法呢?

没有没有直接的方法,但你可以通过覆盖postLogin内部来实现这一点,Auth/AuthController.php所以它将检查密码是否md5格式化然后用laravel散列方法重新进行,否则用户将正常连接,如:

public function postLogin(Request $request)
{
    $this->validate($request, [
        'login' => 'required', 'password' => 'required',
    ]);
    $credentials = $this->getCredentials($request);

    //Get the user
    $user = User::where('login', $request->login)->first();

    //If Hached by bcrypt
    if (Auth::attempt($credentials, $request->has('remember'))) 
    {
        return redirect()->intended($this->redirectPath());
    }
    else //Else if Hached by md5
    {
        if( $user && $user->password == md5($request->password) )
        {
            $user->password = Hash::make($request->password);
            $user->save();

            if($user->authorized){
                $user->save();

                Auth::login($user);
            }else
                Auth::logout();
        }
    }

    return redirect($this->loginPath())
        ->withInput($request->only('login', 'remember'))
        ->withErrors([
            'login' => $this->getFailedLoginMessage(),
        ]);
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.