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

 

热门文章推荐

请稍候...

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

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