PHP关于AES加密解密
2023-07-23 本文已影响0人
Mracale
<?php
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'=>'dfafadfadf465456', //加密key
'iv'=> md5(time(). uniqid(),true), //保证偏移量为16位
'method'=> 'AES-128-CBC' //加密方式 # AES-256-CBC等
];
$obj = new Aes($config);
$res = $obj->aesEn('夏天去sz school 8.3 回来');//加密数据
echo $res;
echo '<hr>';
echo $obj->aesDe($res);//解密