2013-11-09 20 views
9

Vì vậy, tôi chuyển sang trang web của tôi. Trang web cũ của tôi hiện có khoảng 500 người dùng. Mỗi người dùng có một băm md5 gắn liền với họ, như mật khẩu (duh ^^).Xác thực Laravel 4 - sử dụng md5 thay vì tích hợp Hash :: make()

Khi tôi chuyển sang dùng Laravel, tôi muốn sử dụng Auth :: try tiếc là nó sử dụng phương pháp riêng của nó để băm chuỗi mật khẩu. Tôi không muốn tất cả người dùng của tôi thay đổi mật khẩu của họ, bởi vì tôi đang chuyển sang laravel, có thể làm cho lớp Auth sử dụng md5 thay thế, vì vậy người dùng của tôi không phải chuyển đổi mật khẩu? :)

Nếu có, ai đó có thể chỉ cho tôi cách thực hiện không?

+0

Sau đó, bạn sẽ cần phải tạo xác thực của riêng mình, một cái gì đó như 'if ($ result = DB :: table ('user') -> where ('username', Input :: get ('user')) -> ở đâu ('password', md5 (Input :: get ('password'))))) {// đăng nhập thành công} ', mặc dù như Ronni nói tốt hơn không nên sử dụng' md5' và buộc họ thay đổi – user2002495

+0

Hãy xem tại đây: http://stackoverflow.com/a/17719586/1661358 Mặc dù câu trả lời là dành cho SHA1 , nó khá nhiều quá trình tương tự cho MD5. – rmobis

Trả lời

34

MD5 là lỗi thời khủng khiếp. Tôi khuyên bạn không nên cố gắng giữ nó. Thay vào đó, khi người dùng đầu tiên đăng nhập vào, và Auth::attempt thất bại, bạn nên sau đó cố gắng so sánh mật khẩu của họ vào cơ sở dữ liệu như 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

Cảm ơn bạn, tôi sẽ thử, và quay lại :) – Jazerix

+5

Không thể quá rõ ràng: Không sử dụng md5. [Bài viết này] (http://codahale.com/how-to-safely-store-a-password/) có thông tin tốt về lý do tại sao. – fideloper

+0

Vâng, với hệ thống mới, tôi sẽ buộc người dùng nhập lại mật khẩu của họ khi họ đăng nhập, vì vậy tôi có thể thay đổi mật khẩu băm của họ thành một trong những laravel sử dụng. Tôi vui vì tôi đã học được điều này mặc dù ^^ Cảm ơn – Jazerix

Các vấn đề liên quan