php aes 128位加密,php aes-ecb-128位加密

今天来了一个需求 需要进行aes-ecb-128加密 ok这个简单,但是。。。↓↓

平台向接入方分配的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);//解密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值