加密是使用某些演算法將純文字轉換為訊息的過程,使得任何第三方用戶都無法讀取該資訊。這對於傳輸敏感資訊很有幫助,因為入侵者瞄準傳輸的資訊的機會較小。
使用稱為密碼學的過程進行加密。待加密的文字稱為明文,加密後獲得的文字或訊息稱為密文。將密文轉換為純文字的過程稱為解密。
Laravel 使用AES-256 和AES-128 加密器,它使用 Open SSL 進行加密。 Laravel 中包含的所有值都使用協定訊息驗證碼進行簽名,因此底層值一旦加密就無法被竄改。
用於在Laravel 中產生key的命令如下所示-
php artisan key:generate
請注意,此命令使用PHP 安全隨機位元組產生器,您可以看到如下螢幕截圖所示的輸出-
上面給出的命令有助於產生密鑰可以在網路應用程式中使用。觀察下面顯示的螢幕截圖 -
加密值在config/app.php檔案中正確對齊,其中包括兩個加密參數,即key和cipher。如果使用此金鑰的值未正確對齊,則 Laravel 中加密的所有值都將不安全。
可以透過在 Laravel 類別的控制器中使用加密助理來完成值的加密。這些值使用 OpenSSL 和 AES-256 密碼進行加密。所有加密值均使用訊息驗證碼 (MAC) 進行簽名,以檢查加密字串是否有任何修改。
下面顯示的程式碼在控制器中提到,用於儲存秘密或敏感訊息。
填入([ '機密' => 加密($request->機密) ])->保存(); } }
值的解密是使用解密助手完成的。觀察以下程式碼行 -
use IlluminateContractsEncryptionDecryptException; // 在外觀中拋出解密異常 嘗試 { $decrypted=decrypt($encryptedValue); } catch(DecryptException $e){ // }
請注意,如果由於使用無效的 MAC 導致解密過程不成功,則會拋出適當的異常。
以上是Laravel - 加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!