- Giới thiệu
- Cách sử dụng cơ bản
- So sánh mật khẩu với một giá trị băm
- Kiểm tra nếu mật khẩu cần được hash lại
Giới thiệu
Laravel hash facade cung cấp phương thức hash an toàn với Bcrypt để lưu mật khẩu của người dùng. Nếu bạn sử dụng LoginController
và RegisterController
có sẵn có Laravel, nó đã tự động thiết lập sử dụng sẵn Bcrypt cho việc đăng kí và xác thực.
Lưu ý: Bcrypt là một sự lựa chọn tốt cho hashing password bởi vì “work factor (chỉ số hoạt động)” của nó có thể điều chỉnh được, có nghĩa là thời gian để tạo ra một hash có thể tăng lên nếu như công suất của phần
cứng tăng lên.
Cách sử dụng cơ bản
Bạn có thể tạo giá trị băm (hash) của mật khẩu bằng cách gọi hàm make
trong facade Hash
:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use App\Http\Controllers\Controller; class UpdatePasswordController extends Controller { /** * Update the password for the user. * * @param Request $request * @return Response */ public function update(Request $request) { // Validate the new password length... $request->user()->fill([ 'password' => Hash::make($request->newPassword) ])->save(); } }
So sánh mật khẩu với một giá trị băm
Phương thức check
cho phép bạn so sánh một chuỗi với một giá trị băm. Tuy nhiên, nếu bạn đang sử dụng LoginController của laravel,
thì bạn không cần làm điều này, vì
LoginController đã tự động xử lý cho bạn:
if (Hash::check('plain-text', $hashedPassword)) { // The passwords match... }
Kiểm tra nếu mật khẩu cần được hash lại
Phương thức needsRehash
cho phép bạn xác định nếu chỉ số hoạt động (work factor) của hasher thay đổi khi mật khẩu thay đổi:
if (Hash::needsRehash($hashed)) { $hashed = Hash::make('plain-text'); }
Thuộc website harveymomstudy.com