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

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

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

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

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

mcrypt擴(kuò)展在php中默認(rèn)是沒有的,需要自己安裝配置,其方法可以在網(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ù)塊和密鑰長度進(jìn)行加密。

以下是使用擴(kuò)展mcrypt實現(xiàn)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));

輸出結(jié)果

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

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

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

相關(guān)文章

  • 微信公眾平臺消息接口校驗與消息接口響應(yīng)實例

    微信公眾平臺消息接口校驗與消息接口響應(yīng)實例

    這篇文章主要介紹了微信公眾平臺消息接口校驗與消息接口響應(yīng)的方法,實例分析了微信公眾平臺開發(fā)的具體步驟及wechatCallbackapiTest等類的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Windows7下的php環(huán)境配置教程

    Windows7下的php環(huán)境配置教程

    這篇文章主要介紹了Windows7下的php環(huán)境配置教程,本文講解了Windows7下的PHP環(huán)境配置步驟,包含下載安裝文件、配置PHP、添加到系統(tǒng)變量和檢測安裝是否成功等步驟,需要的朋友可以參考下
    2015-02-02
  • php生成并下載word文件到本地實現(xiàn)方法詳解

    php生成并下載word文件到本地實現(xiàn)方法詳解

    要給最常用出租屋管理系統(tǒng)增加個合同功能,mark下知識點。要生成合同就需要使用phpword。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • ThinkPHP、Zend?Framework2、Yaf、Laravel框架路由大比拼

    ThinkPHP、Zend?Framework2、Yaf、Laravel框架路由大比拼

    這篇文章主要介紹了ThinkPHP、Zend?Framework2、Yaf、Laravel框架路由大比拼的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • 國外十大最流行的PHP框架排名

    國外十大最流行的PHP框架排名

    本文來自國外的一個PHP技術(shù)人員網(wǎng)站,總結(jié)了國外的十個目前最流行的PHP MVC框架。具體排名順序未必準(zhǔn)確,還有些知名框架,如Kohana等也沒有提及。不過仍可以做為一篇不錯的參考
    2013-07-07
  • 8個PHP數(shù)組面試題

    8個PHP數(shù)組面試題

    這篇文章主要介紹了8個PHP數(shù)組面試題,例如寫函數(shù)創(chuàng)建長度為10的數(shù)組,數(shù)組中的元素為遞增的奇數(shù),首項為1、創(chuàng)建長度為10的數(shù)組,數(shù)組中的數(shù)為遞增的等比數(shù),比值為3,首項為等題目,需要的朋友可以參考下
    2015-06-06
  • PHP跨時區(qū)(UTC時間)應(yīng)用解決方案

    PHP跨時區(qū)(UTC時間)應(yīng)用解決方案

    解決PHP跨時區(qū)應(yīng)用需要將將程序內(nèi)部時區(qū)設(shè)置為UTC時間.(UTC 也可以叫 GMT) 數(shù)據(jù)庫中存儲UTC時間等等,感興趣的朋友可以了解下
    2013-01-01
  • Swoole 1.10.0新版本發(fā)布,增加了多項新特性

    Swoole 1.10.0新版本發(fā)布,增加了多項新特性

    最近Swoole 1.10.0版本發(fā)布了,增加多項新特性,所以下面這篇文章主要給大家介紹了關(guān)于Swoole 1.10.0版本中新特性的相關(guān)資料,分享出來供大家參考學(xué)習(xí),需要的朋友可以參考下
    2018-01-01
  • PHP生成器功能與用法實例分析

    PHP生成器功能與用法實例分析

    這篇文章主要介紹了PHP生成器功能與用法,結(jié)合實例形式分析了PHP生成器的概念、功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-03-03
  • PHP+MySQL之Insert Into數(shù)據(jù)插入用法分析

    PHP+MySQL之Insert Into數(shù)據(jù)插入用法分析

    這篇文章主要介紹了PHP+MySQL之Insert Into數(shù)據(jù)插入用法,實例分析了php+mysql基于Insert Into語句實現(xiàn)數(shù)據(jù)插入的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09

最新評論