91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP中使用mcrypt實現一個AES加密功能

發布時間:2021-02-15 11:41:04 來源:億速云 閱讀:486 作者:Leah 欄目:開發技術

本篇文章為大家展示了如何在PHP中使用mcrypt實現一個AES加密功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

具體如下:

AES(Advanced Encryption Standard,高級加密標準)是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。Rijndael是在AES中使用的基本密碼算法。

對于此算法網上流傳有很多php代碼實現的版本,其實php的擴展mcrypt完全支持此加密算法,不必要自己去寫代碼實現。先不說自己寫費時費力(當然你若是想研究此加密算法,那另說),使用php代碼實現的算法效率也不會太高。

mcrypt擴展在php中默認是沒有的,需要自己安裝配置,其方法可以在網上搜索,這里不在詳述。你可以使用以下代碼檢查你的php環境是否支持mcrypt

$cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表
$mode_list = mcrypt_list_modes(); //mcrypt支持的加密模式列表
echo '<xmp>';
print_r($cipher_list);
print_r($mode_list);

若你的環境支持mcrypt,輸出結果應該如下:

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)
Array
(
    [0] => cbc
    [1] => cfb
    [2] => ctr
    [3] => ecb
    [4] => ncfb
    [5] => nofb
    [6] => ofb
    [7] => stream
)

例如本機采用wampserver環境,直接開啟了mcrypt擴展:

如何在PHP中使用mcrypt實現一個AES加密功能

其中rijndael-128,rijndael-192,rijndael-256就是AES加密,3種分別是使用不同的數據塊和密鑰長度進行加密。

以下是使用擴展mcrypt實現AES加密的簡單示例

/**
 * 利用mcrypt做AES加密解密
 * @author ts24<tsxw24@gmail.com>
 */
abstract class AES{
 /**
 * 算法,另外還有192和256兩種長度
 */
 const CIPHER = MCRYPT_RIJNDAEL_128;
 /**
 * 模式
 */
 const MODE = MCRYPT_MODE_ECB;
 /**
 * 加密
 * @param string $key 密鑰
 * @param string $str 需加密的字符串
 * @return type
 */
 static public function encode( $key, $str ){
 $iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
 return mcrypt_encrypt(self::CIPHER, $key, $str, self::MODE, $iv);
 }
 /**
 * 解密
 * @param type $key
 * @param type $str
 * @return type
 */
 static public function decode( $key, $str ){
 $iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
 return mcrypt_decrypt(self::CIPHER, $key, $str, self::MODE, $iv);
 }
}

使用示例:

$str = '我是明文我是明文我是明文我是明文我是明文dsfdghgasdfasdddddddd';
$key = 'aSGJLGYEWERWRREW4567i8o';
$str1=AES::encode($key, $str);
$str2=AES::decode($key, $str1);
echo '<xmp>';
var_dump($str);
var_dump($str1);
var_dump($str2);
var_dump(rtrim($str2));

輸出結果

如何在PHP中使用mcrypt實現一個AES加密功能

上述內容就是如何在PHP中使用mcrypt實現一個AES加密功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

象州县| 辽源市| 阆中市| 乌拉特中旗| 奎屯市| 北流市| 宿迁市| 卢龙县| 巴林右旗| 深水埗区| 河南省| 娱乐| 东兴市| 西林县| 手游| 巧家县| 海口市| 大化| 西丰县| 宁安市| 鄂托克前旗| 任丘市| 华阴市| 合川市| 彰化市| 精河县| 吉首市| 望谟县| 长岭县| 玉田县| 日照市| 吴江市| 潮州市| 同心县| 申扎县| 东至县| 精河县| 铜鼓县| 上饶县| 清徐县| 汉川市|