宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > PHP教程

[php]php基于aes的加密算法

2016-10-13 00:16:48 点击量:12 标签: 收藏本文

发现php4的加密模块在php5的不被支持了,硬要加上这个模块会导致启动时候出现警告对话框。
于是花了一天时间将as3的加密类翻译成了php的,该加密类是google的开源项目
http://code.google.com/p/as3crypto/

  1. <?php 
  2. require_once("PKCS5.php"); 
  3. require_once("AESKey.php"); 
  4. require_once("ECBMode.php"); 
  5. require_once("Hex.php"); 
  6.  
  7. class Aes 
  8.     private $_pad;//填充方式 
  9.     private $_mode;//加密类 
  10.     /** 
  11.      * 构造函数 
  12.      * @param   base64keyString   密钥base64编码字符串 
  13.      */ 
  14.     public function Aes($base64keyString)  
  15.     { 
  16.         $this->_pad = new PKCS5(); //为了与java保持一致,所以采用PKCS5填充 
  17.         $key = Hex::string2ByteArray(base64_decode($base64keyString)); 
  18.         $this->_mode = new ECBMode(new AESKey($key), $this->_pad); 
  19.         $this->_pad->setBlockSize($this->_mode->getBlockSize()); 
  20.     } 
  21.      
  22.      
  23.     /** 
  24.      * 将明文加密为密文base64编码字符串 
  25.      * @param   plainSrc         明文 
  26.      * @return  密文base64编码 
  27.      */ 
  28.     public function encrypt($plainSrc) 
  29.     { 
  30.         $src = Hex::string2ByteArray($plainSrc); 
  31.         $src = $this->_mode->encrypt($src); 
  32.          
  33.         return base64_encode(Hex::ByteArray2String($src)); 
  34.     } 
  35.  
  36.      
  37.     /** 
  38.      * 将base64编码字符串(密文)解密成 明文 
  39.      * @param   base64Src  密文base64编码字符串 
  40.      * @return  明文 
  41.      */ 
  42.     public function decrypt($base64Src) 
  43.     { 
  44.         $src = base64_decode($base64Src); 
  45.         $src = $this->_mode->decrypt(Hex::string2ByteArray($src)); 
  46.         return Hex::byteArray2String($src); 
  47.     } 
  48.      
  49.     /** 
  50.      * 释放内存 
  51.      */ 
  52.     public function dispose() 
  53.     { 
  54.         $this->_mode->dispose(); 
  55.     } 
  56. //var_dump(Hex::string2ByteArray(base64_decode("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw="))); 
  57.  
  58. $_aes = new Aes("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw="); 
  59. //echo "=================<br>"; 
  60. $ret = $_aes->encrypt("1234567890abcdef1234567890abcdefaaafdsfsdffasfasfasfasdf"); 
  61. echo $ret; 
  62. var_dump($_aes->decrypt($ret)); 
  63.  
  64. ?> 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室