欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解PHP laravel中的加密與解密函數(shù)

 更新時(shí)間:2022年10月23日 09:58:20   作者:camellia  
Laravel為我們提供了完整的加密方法及加密模式。這篇文章主要帶大家具體看下laravel為我們提供的加密及解密方法,感興趣的小伙伴可以了解一下

Laravel為我們提供了完整的加密方法及加密模式。

我之前一般在加密的時(shí)候使用的是我自己寫的加密函數(shù),但是這個(gè)玩意,有的位置還是不太使用,當(dāng)然,破解的話,基本上也是不可能的。具體請(qǐng)移步《php加密函數(shù)與解密函數(shù)

這里具體看下laravel為我們提供的加密及解密方法。

一:簡(jiǎn)介

Laravel 的加密器使用 OpenSSL 來提供 AES-256 和 AES-128 加密。強(qiáng)烈建議使用 Laravel 自帶的加密設(shè)置,不要嘗試推出自己“土生土長(zhǎng)”的加密算法。所有 Laravel 加密過的值都使用消息授權(quán)碼(MAC)進(jìn)行簽名以便底層值一經(jīng)加密就不能修改。

二:配置

在使用 Laravel 的加密器之前,必須在配置文件 config/app.php 中設(shè)置 key 選項(xiàng)為 32 位隨機(jī)字符串??梢允褂?nbsp;php artisan key:generate 命令來生成這個(gè)key,該 Artisan 命令會(huì)使用 PHP 的安全隨機(jī)字節(jié)生成器來構(gòu)建 key 的值。如果這個(gè)值沒有被設(shè)置,所有 Laravel 加密過的值都是不安全的。

三:使用加密/解密

1:加密

你可以使用輔助函數(shù) encrypt 對(duì)數(shù)據(jù)進(jìn)行加密,所有加密值都使用 OpenSSL 和 AES-256-CBC 密碼(cipher)進(jìn)行加密。此外,所有加密值都通過一個(gè)消息認(rèn)證碼(MAC)來進(jìn)行簽名以防止對(duì)加密字符串的任何修改。

<?php
 
namespace AppHttpControllers;
 
use AppUser;
use IlluminateHttpRequest;
use AppHttpControllersController;
 
class UserController extends Controller
{
    /**
     * 存儲(chǔ)用戶安全信息.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function storeSecret(Request $request, $id)
    {
        $user = User::findOrFail($id);
 
        $user->fill([
            'secret' => encrypt($request->secret)
        ])->save();
    }
}

2:不使用序列化進(jìn)行加密

加密值在加密期間都會(huì)經(jīng)過序列化函數(shù) serialize 進(jìn)行處理,從而允許對(duì)對(duì)象和數(shù)組的加密。因此,非 PHP 客戶端接收的加密數(shù)據(jù)需要進(jìn)行 unserialize 反序列化。如果你想要在加密和解密數(shù)據(jù)時(shí)不進(jìn)行序列化操作,可以使用 Crypt 門面提供的 encryptString 和 decryptString 方法:

use IlluminateSupportFacadesCrypt;
 
$encrypted = Crypt::encryptString('Hello world.');
 
$decrypted = Crypt::decryptString($encrypted);

3:解密

你可以使用輔助函數(shù) decrypt 對(duì)加密數(shù)據(jù)進(jìn)行解密。如果該值不能被解密,例如 MAC 無效,將會(huì)拋出一個(gè)IlluminateContractsEncryptionDecryptException異常:

use IlluminateContractsEncryptionDecryptException;
 
try {
    $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
    //
}

以上大概就是laravel為我們提供的加密/解密函數(shù)

到此這篇關(guān)于詳解PHP laravel中的加密與解密函數(shù)的文章就介紹到這了,更多相關(guān)PHP laravel加密 解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家

相關(guān)文章

  • php遞歸遍歷多維數(shù)組的方法

    php遞歸遍歷多維數(shù)組的方法

    這篇文章主要介紹了php遞歸遍歷多維數(shù)組的方法,實(shí)例分析了php數(shù)組遍歷的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • PHP使用memcache緩存技術(shù)提高響應(yīng)速度的方法

    PHP使用memcache緩存技術(shù)提高響應(yīng)速度的方法

    這篇文章主要介紹了PHP使用memcache緩存技術(shù)提高響應(yīng)速度的方法,以實(shí)例形式分析了memcache緩存技術(shù)的使用技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • 使用GDB調(diào)試PHP代碼,解決PHP代碼死循環(huán)問題

    使用GDB調(diào)試PHP代碼,解決PHP代碼死循環(huán)問題

    這篇文章主要介紹了使用GDB調(diào)試PHP代碼,解決PHP代碼死循環(huán)問題,需要的朋友可以參考下
    2015-03-03
  • php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較

    php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較

    “重載”是類的多態(tài)的一種實(shí)現(xiàn)。函數(shù)重載指一個(gè)標(biāo)識(shí)符被用作多個(gè)函數(shù)名,且能夠通過函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類型將這些同名的函數(shù)區(qū)分開來,調(diào)用不發(fā)生混淆。這樣做的主要好處就是,不用為了對(duì)不同的參數(shù)類型或參數(shù)個(gè)數(shù),而寫多個(gè)函數(shù)。
    2008-09-09
  • PHP操作redis實(shí)現(xiàn)的分頁列表,新增,刪除功能封裝類與用法示例

    PHP操作redis實(shí)現(xiàn)的分頁列表,新增,刪除功能封裝類與用法示例

    這篇文章主要介紹了PHP操作redis實(shí)現(xiàn)的分頁列表,新增,刪除功能封裝類與用法,結(jié)合實(shí)例形式分析了php針對(duì)redis數(shù)據(jù)庫基本的連接、查詢、添加、分頁等操作封裝與使用技巧,需要的朋友可以參考下
    2018-08-08
  • for循環(huán)連續(xù)求和、九九乘法表代碼

    for循環(huán)連續(xù)求和、九九乘法表代碼

    上午講了PHP的循環(huán)語句,for、while、do…while,學(xué)過C或者其他語言的對(duì)這個(gè)應(yīng)該不陌生了,不過對(duì)于新手來說還是有點(diǎn)吃力
    2012-02-02
  • PHP遞歸算法的詳細(xì)示例分析

    PHP遞歸算法的詳細(xì)示例分析

    我們?cè)诮ㄔO(shè)一個(gè)網(wǎng)站的時(shí)候,程序員們首選的當(dāng)屬PHP語言。我們對(duì)PHP還是比較熟悉的,接下來我們將會(huì)為大家介紹一下PHP遞歸算法
    2013-02-02
  • php數(shù)組指針操作詳解

    php數(shù)組指針操作詳解

    本文主要介紹了php數(shù)組指針操作。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • PHP單態(tài)模式簡(jiǎn)單用法示例

    PHP單態(tài)模式簡(jiǎn)單用法示例

    這篇文章主要介紹了PHP單態(tài)模式簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了php單態(tài)模式的定義與相關(guān)使用技巧,需要的朋友可以參考下
    2016-11-11
  • php之使用docker運(yùn)行workerman案例講解

    php之使用docker運(yùn)行workerman案例講解

    這篇文章主要介紹了php之使用docker運(yùn)行workerman案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論