php 对称加密
1.加密方法
openssl_encrypt($data, $method, $password, $options, $iv)
2.参数说明:
$data 加密明文
$method 加密方法
1、DES-ECB
2、DES-CBC
3、DES-CTR
4、DES-OFB
5、DES-CFB
$passwd 加密密钥[密码]
$options 数据格式选项(可选)【选项有:】
1、0
2、OPENSSL_RAW_DATA=1
3、OPENSSL_ZERO_PADDING=2
4、OPENSSL_NO_PADDING=3
$iv 密初始化向量(可选)
3.demo 案例
class Aes
{
public $key = '';
public $iv = '';
public function __construct($config)
{
foreach($config as $k => $v){
$this->$k = $v;
}
}
//加密
public function aesEn($data){
return base64_encode(openssl_encrypt($data, $this->method,$this->key, OPENSSL_RAW_DATA , $this->iv));
}
//解密
public function aesDe($data){
return openssl_decrypt(base64_decode($data), $this->method, $this->key, OPENSSL_RAW_DATA, $this->iv);
}
}
$config = [
'key' => 'reter4446fdfgdfgdfg', //加密key
'iv' => md5(time(). uniqid(),true), //保证偏移量为16位
'method' => 'AES-128-CBC' //加密方式 # AES-256-CBC等
];
$obj = new Aes($config);
$res = $obj->aesEn('aaaddee44');//加密数据
echo $res;
echo '<hr>';
echo $obj->aesDe($res);//解密