How to convert password from md5 to laravel encryption method How to convert password from md5 to laravel encryption method laravel laravel

How to convert password from md5 to laravel encryption method


Is there any direct method to do it?

No there's no direct method, but you could achieve that by overriding postLogin inside Auth/AuthController.php so it will check if the password is in md5 format then recrypt it with laravel hashing method else the user will connect normally, like :

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(),        ]);}

Hope this helps.


Unfortunately no.

The only method to achieve it is to develop new behavior of your app (writen in laravel) that allows users to login using old, md5-hashed passwords, and then enforces password change or - because you can get users password during login process - store password using laravels hashing method by updating logged user model.


Only the user should change his password (as you can't see their password). So you should send a reset password link for them and then update the password with Laravel hash method.