如何在PHP中使用mcrypt实现一个AES加密功能

  介绍

本篇文章为大家展示了如何在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扩展:

如何在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 类型   ,*/,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加密功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

如何在PHP中使用mcrypt实现一个AES加密功能