·您当前的位置:首页 > 技术教程 > PHP教程 >

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

时间:2016-07-03 12:06酷播
[php]php基于aes的加密算法

发现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. ?> 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器