婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP擴展mcrypt實現的AES加密功能示例

PHP擴展mcrypt實現的AES加密功能示例

熱門標簽:智能電銷語音機器人資訊 打開百度地圖標注 400 電話 辦理 山東電銷卡外呼系統原理是什么 亳州企業外呼系統 地圖標注怎么做商戶驗證 兼職做地圖標注好賺錢嗎 海南外呼系統方案 蘇州外呼系統有效果嗎

本文實例講述了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擴展:

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

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

/**
 * 利用mcrypt做AES加密解密
 * @author ts24tsxw24@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));

輸出結果

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

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

文字在線加密解密工具(包含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相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結》

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

您可能感興趣的文章:
  • PHP代碼加密和擴展解密實戰
  • PHP基于mcript擴展實現對稱加密功能示例
  • PHP 使用openssl 擴展實現公鑰加密的方法
  • PHP的openssl加密擴展使用小結(推薦)
  • PHP加密擴展庫Mcrypt安裝和實例
  • 詳解PHP的Sodium加密擴展函數

標簽:武威 遵義 徐州 遂寧 荊門 常州 吐魯番 寧夏

巨人網絡通訊聲明:本文標題《PHP擴展mcrypt實現的AES加密功能示例》,本文關鍵詞  PHP,擴展,mcrypt,實現,的,AES,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP擴展mcrypt實現的AES加密功能示例》相關的同類信息!
  • 本頁收集關于PHP擴展mcrypt實現的AES加密功能示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 滁州市| 三穗县| 通榆县| 绥棱县| 石嘴山市| 调兵山市| 松原市| 准格尔旗| 江门市| 漳浦县| 友谊县| 鹰潭市| 富平县| 青河县| 常州市| 阆中市| 库尔勒市| 北票市| 建始县| 五大连池市| 梧州市| 怀安县| 望谟县| 古浪县| 清水县| 原平市| 阿拉善右旗| 尉氏县| 梅河口市| 靖宇县| 巩留县| 保靖县| 东安县| 罗源县| 保山市| 楚雄市| 巴林左旗| 日喀则市| 江北区| 肥东县| 济阳县|