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);//解密


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM