Laravel 4 Auth - 使用md5而不是集成的Hash :: make()

Jaz*_*rix 9 php hash laravel laravel-4

所以,我正在为我的网站切换到laravel.我的旧网站目前拥有约500名用户.每个用户都附加了一个md5哈希值作为密码(duh ^^).

当我切换到laravel时,我希望使用Auth ::尝试不幸的是它使用自己的方法来散列密码字符串.我不希望我的所有用户都更改密码,因为我正在切换到laravel,是否可以使Auth类使用md5,所以我的用户不必切换密码?:)

如果是,有人可以告诉我如何?

Som*_*123 35

MD5非常过时.我建议你不要试图保留它.相反,当用户首次登录并Auth::attempt失败时,您应该尝试将其密码作为MD5与数据库进行比较

$user = User::where('username', '=', Input::get('username'))->first();

if(isset($user)) {
    if($user->password == md5(Input::get('password'))) { // If their password is still MD5
        $user->password = Hash::make(Input::get('password')); // Convert to new format
        $user->save();
        Auth::login(Input::get('username'));
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 它不能过分说明:不要使用md5.[本文](http://codahale.com/how-to-safely-store-a-password/)提供了很好的信息. (5认同)