Welcome

首页 / 网页编程 / PHP / PHP的AES加密算法完整实例

本文实例讲述了PHP的AES加密算法。分享给大家供大家参考,具体如下:
<?phpclass MCrypt {private $hex_iv = "00000000000000000000000000000000"; # converted JAVA byte code in to HEX and placed it hereprivate $key = "U1MjU1M0FDOUZ.Qz"; #Same as in JAVAfunction __construct() {$this->key = hash("sha256", $this->key, true);//echo $this->key."<br/>";}function encrypt($str) {$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, "", MCRYPT_MODE_CBC, "");mcrypt_generic_init($td, $this->key, $this->hexToStr($this->hex_iv));$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$pad = $block - (strlen($str) % $block);$str .= str_repeat(chr($pad), $pad);$encrypted = mcrypt_generic($td, $str);mcrypt_generic_deinit($td);mcrypt_module_close($td);return base64_encode($encrypted);}function decrypt($code) {$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, "", MCRYPT_MODE_CBC, "");mcrypt_generic_init($td, $this->key, $this->hexToStr($this->hex_iv));$str = mdecrypt_generic($td, base64_decode($code));$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);mcrypt_generic_deinit($td);mcrypt_module_close($td);return $this->strippadding($str);}/* For PKCS7 padding */private function addpadding($string, $blocksize = 16) {$len = strlen($string);$pad = $blocksize - ($len % $blocksize);$string .= str_repeat(chr($pad), $pad);return $string;}private function strippadding($string) {$slast = ord(substr($string, -1));$slastc = chr($slast);$pcheck = substr($string, -$slast);if (preg_match("/$slastc{" . $slast . "}/", $string)) {$string = substr($string, 0, strlen($string) - $slast);return $string;} else {return false;}}function hexToStr($hex){$string="";for ($i=0; $i < strlen($hex)-1; $i+=2){$string .= chr(hexdec($hex[$i].$hex[$i+1]));}return $string;}}$encryption = new MCrypt();echo $encryption->encrypt("123456") . "<br/>";echo $encryption->decrypt("tpyxISJ83dqEs3uw8bN/+w==");?>
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
密码安全性在线检测:
http://tools.jb51.net/password/my_password_safe
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
迅雷、快车、旋风URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。