laravel的加密方法:1、利用Hash,語法「bcrypt('需要加密的文字')」或「Hash::make('需要加密的文字')」;2、使用Laravel的加密器,語法“encrypt('需要加密的文字')”。
本教學操作環境:windows7系統、Laravel6版,DELL G3電腦。
雜湊
#Laravel 的Hash 裡面為儲存使用者密碼提供了安全的Bcrypt和Argon2 哈希演算法。
附註:Bcrypt 是雜湊密碼的絕佳選擇,因為其「工作因子」是可調整的,這意味著隨著硬體功能的提升,產生雜湊所花費的時間也會增加。
設定
應用預設的雜湊驅動設定在設定檔 config/hashing.php 中,目前支援兩個驅動:Bcrypt 和 Argon2。
附註:Argon2i 驅動程式要求 PHP 7.2.0 或更高版本,Argon2id 驅動程式要求 PHP 7.3.0 或更高版本。
第一種
bcrypt('admin888')
第二種
use Illuminate\Support\Facades\Hash; $pwd = Hash::make('admin888'); //加密存储
驗證方法
if (Hash::check('qwe123456', $pwd)) { // 密码匹配... } public function login() { $credentials = request(['email', 'password']); if (! $token = auth('api')->attempt($credentials)) { return response()->json(['error' => 'Unauthorized'], 401); } return $this->respondWithToken($token); }
加密
Laravel 的加密器使用OpenSSL 來提供AES-256 和AES-128 加密。強烈建議使用 Laravel 自帶的加密設置,不要嘗試推出自己「土生土長」的加密演算法。所有 Laravel 加密過的值都使用訊息授權碼(MAC)進行簽署以便底層值一經加密就不能修改。
設定
在使用 Laravel 的加密器之前,必須在設定檔 config/app.php 中設定 key 選項為 32 位元隨機字串。可以使用 php artisan key:generate 指令來產生這個key,該 Artisan 指令會使用 PHP 的安全隨機位元組產生器來建立 key 的值。如果這個值沒有被設置,所有 Laravel 加密過的值都是不安全的。
加密
你可以使用輔助函數 encrypt 對資料進行加密,所有加密值都使用 OpenSSL 和 AES-256-CBC 密碼(cipher)進行加密。此外,所有加密值都透過一個訊息認證碼(MAC)來進行簽章以防止加密字串的任何修改。
encrypt('密码')
不進行序列化的加密
加密值在加密期間都會經過序列化函數 serialize 進行處理,從而允許對物件和陣列的加密。因此,非 PHP 用戶端接收的加密資料需要進行 unserialize 反序列化。
如果你想要在加密和解密資料時不進行序列化操作,可以使用Crypt 門面提供的encryptString 和decryptString 方法:
use Illuminate\Support\Facades\Crypt; $encrypted = Crypt::encryptString('Hello world.'); $decrypted = Crypt::decryptString($encrypted);
解密
你可以使用輔助函數decrypt 來解密加密資料。如果該值無法被解密,例如MAC 無效,將會拋出一個Illuminate\Contracts\Encryption\DecryptException異常:
use Illuminate\Contracts\Encryption\DecryptException; try { $decrypted = decrypt($encryptedValue); } catch (DecryptException $e) { // }
相關推薦:最新的五個Laravel影片教學
以上是laravel的加密方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!