PHP 标准AES加密算法类
生活随笔
收集整理的這篇文章主要介紹了
PHP 标准AES加密算法类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分享一個標準PHP的AES加密算法類,其中mcrypt_get_block_size('rijndael-128',?'ecb');,如果在不明白原理的情況下比較容易搞錯,可以通過mcrypt_list_algorithms函數查看你需要的加密算法標識。
?
<?php /*** AES128加解密類* @author dy**/ defined('InEjbuy') or exit('Access Invalid!'); class Aes{//密鑰private $_secrect_key;public function __construct(){$this->_secrect_key = 'MYgGnQE2jDFADSFFDSEWsdD';}/*** 加密方法* @param string $str* @return string*/public function encrypt($str){//AES, 128 ECB模式加密數據$screct_key = $this->_secrect_key;$screct_key = base64_decode($screct_key);$str = trim($str);$str = $this->addPKCS7Padding($str);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);$encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv);return base64_encode($encrypt_str);}/*** 解密方法* @param string $str* @return string*/public function decrypt($str){//AES, 128 ECB模式加密數據$screct_key = $this->_secrect_key;$str = base64_decode($str);$screct_key = base64_decode($screct_key);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);$encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv);$encrypt_str = trim($encrypt_str);$encrypt_str = $this->stripPKSC7Padding($encrypt_str);return $encrypt_str;}/*** 填充算法* @param string $source* @return string*/function addPKCS7Padding($source){$source = trim($source);$block = mcrypt_get_block_size('rijndael-128', 'ecb');$pad = $block - (strlen($source) % $block);if ($pad <= $block) {$char = chr($pad);$source .= str_repeat($char, $pad);}return $source;}/*** 移去填充算法* @param string $source* @return string*/function stripPKSC7Padding($source){$source = trim($source);$char = substr($source, -1);$num = ord($char);if($num==62)return $source;$source = substr($source,0,-$num);return $source;} }?
如何聯系我:【萬里虎】www.bravetiger.cn 【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起) 【博客】http://www.cnblogs.com/kenshinobiy/總結
以上是生活随笔為你收集整理的PHP 标准AES加密算法类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javascript 深入学习循环
- 下一篇: 动态规划算法php,php算法学习之动态