2013-11-09 15 views
9

Quindi, sto passando a laravel per il mio sito. Il mio vecchio sito contiene attualmente circa 500 utenti. Ad ogni utente è associato un hash md5, come la password (duh ^^).Laravel 4 Auth - usa md5 invece di Hash :: make() integrato

Mentre sto passando a laravel, desidero utilizzare Auth :: tentativo sfortunatamente utilizza il proprio metodo per stringhe di password hash. Non voglio che tutti i miei utenti cambino la loro password, perché sto passando a laravel, è possibile che la classe Auth usi invece md5, quindi i miei utenti non devono cambiare la password? :)

Se sì, qualcuno può mostrarmi come?

+0

Poi sarà necessario per creare il proprio autenticatore, qualcosa di simile a 'if ($ result = DB :: table ('user') -> where ('username', Input :: get ('user')) -> where ('password', md5 (Input :: get ('password'))))) {// accedere correttamente} ', anche se come Ronni ha detto meglio non usare' md5' e forzarli a cambiare – user2002495

+0

Dai un'occhiata qui: http://stackoverflow.com/a/17719586/1661358 Anche se la risposta è per SHA1 , è praticamente lo stesso processo per MD5. – rmobis

risposta

34

MD5 è orribilmente obsoleto. Ti raccomando di non provare a tenerlo. Invece, quando un utente accede prima, e Auth::attempt fallisce, si dovrebbe quindi cercare di confrontare la propria password al database come 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')); 
    } 
} 
+0

Grazie, proverò e riprenderò :) – Jazerix

+5

Non può essere abbastanza sovradimensionato: non usare md5. [Questo articolo] (http://codahale.com/how-to-safely-store-a-password/) ha una buona informazione sul perché. – fideloper

+0

Bene, con il nuovo sistema, costringerò gli utenti a inserire nuovamente la password quando accedono, così posso cambiare il loro hash della password con quello che laravel usa. Sono contento di aver imparato questo però ^^ Grazie – Jazerix