zoukankan      html  css  js  c++  java
  • 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);//解密
  • 相关阅读:
    代理模式之动态代理
    代理模式之静态代理
    基于Java类进行配置Spring
    Spring使用注解开发
    Spring的自动装配
    Bean的作用域
    Spring配置
    最全总结 | 聊聊 Python 办公自动化之 Excel(上)
    最全总结 | 聊聊 Python 数据处理全家桶(MongoDB 篇)
    最全总结 | 聊聊 Python 数据处理全家桶(Redis篇)
  • 原文地址:https://www.cnblogs.com/cyq632694540/p/12988484.html
Copyright © 2011-2022 走看看