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);//解密
上一篇 下一篇

猜你喜欢

热点阅读