[php]php基于aes的加密算法
[php]php基于aes的加密算法
发现php4的加密模块在php5的不被支持了,硬要加上这个模块会导致启动时候出现警告对话框。
于是花了一天时间将as3的加密类翻译成了php的,该加密类是google的开源项目
http://code.google.com/p/as3crypto/
- <?php
- require_once("PKCS5.php");
- require_once("AESKey.php");
- require_once("ECBMode.php");
- require_once("Hex.php");
- class Aes
- {
- private $_pad;//填充方式
- private $_mode;//加密类
- /**
- * 构造函数
- * @param base64keyString 密钥base64编码字符串
- */
- public function Aes($base64keyString)
- {
- $this->_pad = new PKCS5(); //为了与java保持一致,所以采用PKCS5填充
- $key = Hex::string2ByteArray(base64_decode($base64keyString));
- $this->_mode = new ECBMode(new AESKey($key), $this->_pad);
- $this->_pad->setBlockSize($this->_mode->getBlockSize());
- }
- /**
- * 将明文加密为密文base64编码字符串
- * @param plainSrc 明文
- * @return 密文base64编码
- */
- public function encrypt($plainSrc)
- {
- $src = Hex::string2ByteArray($plainSrc);
- $src = $this->_mode->encrypt($src);
- return base64_encode(Hex::ByteArray2String($src));
- }
- /**
- * 将base64编码字符串(密文)解密成 明文
- * @param base64Src 密文base64编码字符串
- * @return 明文
- */
- public function decrypt($base64Src)
- {
- $src = base64_decode($base64Src);
- $src = $this->_mode->decrypt(Hex::string2ByteArray($src));
- return Hex::byteArray2String($src);
- }
- /**
- * 释放内存
- */
- public function dispose()
- {
- $this->_mode->dispose();
- }
- }
- //var_dump(Hex::string2ByteArray(base64_decode("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw=")));
- $_aes = new Aes("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw=");
- //echo "=================<br>";
- $ret = $_aes->encrypt("1234567890abcdef1234567890abcdefaaafdsfsdffasfasfasfasdf");
- echo $ret;
- var_dump($_aes->decrypt($ret));
- ?>
热门文章推荐
- [php]优酷真实视频地址解析算法
- [Dz]discuz手机版支持视频播放的方法
- [PHP]php加密js解密的方法实例
- [php]用PHP打印出前一天的时间格式
- [PHP]mpeg,mp3,avi的ffmpeg的php转换类
- [php]php中3DES加密一个非常有用的3des加密
- [PHP]php.ini修改上传文件的大小限制处理方法
- [php]用过的最好用的php分页类源代码
请稍候...