本篇文章为大家展示了如何在PHP中使用mcrypt实现一个AES加密功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
具体如下:
AES(高级加密标准,高级加密标准)是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.Rijndael是在AES中使用的基本密码算法。
对于此算法网上流传有很多PHP代码实现的版本,其实PHP的扩展mcrypt完全支持此加密算法,不必要自己去写代码实现。先不说自己写费时费力(当然你若是想研究此加密算法,那另说),使用PHP代码实现的算法效率也不会太高。
mcrypt扩展在PHP中默认是没有的,需要自己安装配置,其方法可以在网上搜索,这里不在详述。你可以使用以下代码检查你的PHP环境是否支持mcrypt
cipher_list 美元;=,mcrypt_list_algorithms ();//mcrypt支持的加密算法列表 $ mode_list =, mcrypt_list_modes ();,//mcrypt支持的加密模式列表 echo & # 39; & lt; xmp> & # 39;; print_r ($ cipher_list); print_r ($ mode_list);
若你的环境支持mcrypt,输出结果应该如下:
阵列
引用>
(
,,,[0]=比;演员- 128
,,,[1]=比;gost
,,,[2]=比;rijndael - 128
,,,[3]=比;twofish
,,,[4]=比;arcfour
,,,[5]=比;演员- 256
,,,[6]=比;loki97
,,,[7]=比;rijndael - 192
,,,[8]=比;saferplus
,,,[9]=比;后
,,,[10]=比;blowfish-compat
,,,[11]=比;des
,,,[12]=比;rijndael - 256
,,,[13]=比;蛇
,,,[14]=比;xtea
,,,[15]=比;河豚
,,,[16]=比;谜
,,,[17]=比;rc2
,,,[18]=比;tripledes
)数组
(
,,,[0]=比;cbc
,,,[1]=比;循环流化床
,,,[2]=比;ctr
,,,[3]=比;欧洲央行
,,,[4]=比;ncfb
,,,[5]=比;nofb
,,,[6]=比;富含
b,,,[7]=比;流
)例如本机采用wampserver环境,直接开启了mcrypt扩展:
其中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 类型 ,*/,static public  function 编码(,关键美元,美元str ) { ,iv 美元;=,mcrypt_create_iv (mcrypt_get_iv_size (self::密码,自我:模式),MCRYPT_RAND); ,return mcrypt_encrypt (self::密码,,关键,美元,str美元,self::模式,,4美元); ,}/* * ,*解密 美元,* @param type 关键 ,* @param type  str美元 ,* @return 类型 ,*/,static public  function 解码(,关键美元,美元str ) { ,iv 美元;=,mcrypt_create_iv (mcrypt_get_iv_size (self::密码,自我:模式),MCRYPT_RAND); ,return mcrypt_decrypt (self::密码,,关键,美元,str美元,self::模式,,4美元); ,} }使用示例:
str 美元;=,& # 39;我是明文我是明文我是明文我是明文我是明文dsfdghgasdfasdddddddd& # 39;; 时间=美元key & # 39; aSGJLGYEWERWRREW4567i8o& # 39;; $ str1=AES:编码(关键美元,,str); $ str2=AES::解码(键,美元,美元str1); echo & # 39; & lt; xmp> & # 39;; 美元var_dump (str); str1美元var_dump (); str2美元var_dump (); var_dump(空白(str2美元));输出结果
上述内容就是如何在PHP中使用mcrypt实现一个AES加密功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
如何在PHP中使用mcrypt实现一个AES加密功能