//检查php环境是否支持mcrypt
$cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表
$mode_list = mcrypt_list_modes(); //mcrypt支持的加密模式列表
echo '<xmp>';
print_r($cipher_list);
print_r($mode_list);
//rijndael-128,rijndael-192,rijndael-256就是AES加密,3种分别是使用不同的数据块和密钥长度进行加密。
/**
* 利用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 type $key
* @param type $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);
}
}
$str = '我是明文我是明文我是明文我是明文我是明文dsfdghgasdfasdddddddd';
$key = 'aSGJLGYEWERWRREW4567i8o';
$str1=AES::encode($key, $str);
$str2=AES::decode($key, $str1);
echo '<xmp>';
var_dump($str);
var_dump($str1);
var_dump($str2);
PHP AES对称加密源码
最新推荐文章于 2024-04-26 08:47:46 发布