phpaes-ecb-128位加密
今天来了⼀个需求需要进⾏aes-ecb-128加密 ok这个简单,但是。。。↓↓php实例代码解密
平台向接⼊⽅分配的AppSecret(32位长的⼗六进制字符串)作为密钥。采⽤128位模式。使⽤前需把AppSecret转换为16位长的⼆进制字节数组。
1.32位长⼗六进制字符串转换为 16位长的⼆进制字节数组 //有点懵,⽹上查不到。其实就是16进制字符串数据转2进制,使
⽤hex2bin()函数即可 O(∩_∩)O~~
2.下⼀步aes加密解密,上代码:
class AES_CW{
private $_iv = '';
private $_secret = '';
public function __construct($iv,$secret){
$this->_iv = substr($iv.'0000000000000000', 0,16);//可以忽略这⼀步,只要你保证iv长度是16
$this->_secret =$secret;
}
public function decodeECB128($secretData){
return openssl_decrypt($secretData,'aes-128-ecb',$this->_secret,OPENSSL_RAW_DATA);
}
public function encodeECB128($data){
//这⾥需要配置options参数OPENSSL_RAW_DATA裸数据,否则默认是base64_encode格式化过得数据
$data = openssl_encrypt($data,'aes-128-ecb',$this->_secret,OPENSSL_RAW_DATA);
return $data;
}
}
$secret = hex2bin("ABCD51171779997B98888AF51079752B");//获取16位⼆进制数组数据
$aes = new AES_CW("",$secret);//实例化aes对象
$enc = $aes->encodeECB128('RawData');//加密这是data返回的数据是⼆进制数据,再把它转化为16进制的数据,使⽤bin2hex()函数即可 O(∩_∩)O~~ 完成~
$dec = $aes->decodeECB128($enc);//解密
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论