我这边是对接广发银行接口时用到的 话不多说 , 直接上代码
其中广发银行的密钥是一个随机数 , 32位 , 用到了hex16进制字符串的转换 , 可以根据业务自行调整
/**
* aes加密
* @$json 数据 @$sk密钥
*/
public function setAES($json ,$SK)
{
$key = substr(openssl_digest(openssl_digest($SK, 'sha1', true), 'sha1', true), 0, 16);
$data = openssl_encrypt($json, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
$data = strtolower(bin2hex($data));
return $data;
}
/**
* aes解密
*/
public function getAES($data ,$SK)
{
$key = substr(openssl_digest(openssl_digest($SK, 'sha1', true), 'sha1', true), 0, 16);
$decrypted = openssl_decrypt(hex2bin($data), 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
return $decrypted;
}