最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能示例

 更新時(shí)間:2019年01月29日 11:37:27   作者:five-zh  
這篇文章主要介紹了PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能,結(jié)合實(shí)例形式分析了php基于mcrypt實(shí)現(xiàn)AES加密的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能。分享給大家供大家參考,具體如下:

對(duì)于此算法網(wǎng)上流傳有很多php代碼實(shí)現(xiàn)的版本,其實(shí)php的擴(kuò)展mcrypt完全支持此加密算法,不必要自己去寫代碼實(shí)現(xiàn)。先不說(shuō)自己寫費(fèi)時(shí)費(fèi)力(當(dāng)然你若是想研究此加密算法,那另說(shuō)),使用php代碼實(shí)現(xiàn)的算法效率也不會(huì)太高。

mcrypt擴(kuò)展在php中默認(rèn)是沒(méi)有的,需要自己安裝配置,其方法可以在網(wǎng)上搜索,這里不在詳述。你可以使用以下代碼檢查你的php環(huán)境是否支持mcrypt

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

若你的環(huán)境支持mcrypt,輸出結(jié)果應(yīng)該如下:

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
)

例如本機(jī)采用wampserver環(huán)境,直接開啟了mcrypt擴(kuò)展:

其中rijndael-128,rijndael-192,rijndael-256就是AES加密,3種分別是使用不同的數(shù)據(jù)塊和密鑰長(zhǎng)度進(jìn)行加密。

以下是使用擴(kuò)展mcrypt實(shí)現(xiàn)AES加密的簡(jiǎn)單示例

/**
 * 利用mcrypt做AES加密解密
 * @author ts24<tsxw24@gmail.com>
 */
abstract class AES{
 /**
 * 算法,另外還有192和256兩種長(zhǎng)度
 */
 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));

輸出結(jié)果

問(wèn)題,不知道是什么原因,解密后的字符串(見(jiàn)上圖),末尾還留下有不可見(jiàn)的填充字符,當(dāng)明文剛好可以分組時(shí)則沒(méi)有。

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

内黄县| 呈贡县| 鸡西市| 竹北市| 垫江县| 旌德县| 浪卡子县| 松阳县| 遂川县| 湖南省| 定结县| 景东| 南投县| 基隆市| 伊吾县| 金平| 施甸县| 镇安县| 贵南县| 乐至县| 奉新县| 阿拉善右旗| 昌乐县| 梅河口市| 葵青区| 中牟县| 平顺县| 崇左市| 滨州市| 祁连县| 合肥市| 汝南县| 湄潭县| 吉林市| 海丰县| 静宁县| 通辽市| 松阳县| 淮北市| 浦城县| 襄樊市|