PHP使用AES加密
使用之前必须先安装好Mcrypt这个模块,并且添加相应版本的扩展到PHP中,详情自行查看 PHP安装Mcrypt扩展
代码如下:
<?php
//Mcrypt AES 加密/解密
abstract class AES
{
//算法,另外还有192和256两种长度
const CIPHER = MCRYPT_RIJNDAEL_128;
//模式
const MODE = MCRYPT_MODE_ECB;
/*
* 加密
* @param string $key 密钥
* @param string $str 需加密的字符串
* @return type
*/
static public function encode($key,$str)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
return mcrypt_encrypt(self::CIPHER, $key, $str, self::MODE, $iv);
}
/*
* 解密
* @param string $key 密钥
* @param string $str 密文
* @return type
*/
static public function decode($key,$str)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
return mcrypt_decrypt(self::CIPHER, $key, $str, self::MODE, $iv);
}
}
?>
<?php
/*示例用法*/
$str = '需要加密的字符';
$key = '密钥密钥密钥Ainto';
$str1=AES::encode($key, $str);
$str2=AES::decode($key, $str1);
//明文
echo($str)."<br><br>";
//密文Base64 直接输出编码会乱,先转换便于显示
echo base64_encode($str1) ."<br><br>";
//Base解密(浏览器查看乱码)
//echo base64_decode(base64_encode($str1))."<br><br>";
//解密内容
echo($str2)."<br><br>";
?>