首页 > IT职业 > IT职场 > php7.2后的aes加密类
namespace appcommonlib;
class Aes {
private $hex_iv = '878zxc321smn7d9s0wkjuytrvbnd6gaq';
private $key = '2j8s2jjugyuhgdnfijmwy36b7n8kmf8p';
function __construct($key) {
$this->key = $key;
$this->key = hash('sha256', $this->key, true);
} public function encrypt($input)
{
$data = openssl_encrypt($input, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));
$data = base64_encode($data);
return $data;
}
public function decrypt($input)
{
$decrypted = openssl_decrypt(base64_decode($input), 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));
return $decrypted;
} 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 }
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1812/viewspace-2809183/ ,如需转载,请注明出处,否则将追究法律责任。