发送请求动态加密算法
**# SSdun网络验证 支持多种平台、多开发环境,此文档将帮助你将Ssdun网络验证的功能集成到你的程序或脚本中。**
请在 **V4** 接口使用此函数(V4 API接口全面支持此动态算法)
## 算法模式
```language
采用AES-ECB-128 填充模式pkcs5padding
加密后Base64编码
采用data字段传输
```
## 动态密钥获取
```php
//固定头信息
$key="ssdun";
//获取时间戳 UTC+8 (CST) 东八区
$timestamp=time();
//转换取 年月日时分 时间戳 (秒数为0)
$timestamp = strtotime(date("Y-m-d H:i"),$timestamp);
//取出时间戳前九位
$timestamp = substr($timestamp, 0, 9);
//拼接
$key=$key.$timestamp;
//字符串转十六进制
$hexKey = strToHex($key);
//bcc效验
$byte = HexToBytes($hexKey);
$bytes[] = bcc($byte);
$bcc=BytesToHex($bytes);
//效验完拼接 拼接效验后的16进制
$key=$key.$bcc;
//注 若key超出十六位数 截取前16位数即可
$key= substr($key, 0, 16);
//得出动态Key
```
## 例子
```php
$key="ssdun16286670643";
$JsonData={"app_secret":"1003","user_key":"c66f660a1a86e69f4a0c7d0e9db4612a8781558e8b0c5861a539b61dcb77cc6e","timestamp":1628667065,"sign":"f7b0c7ae3b1a0bdb049589c3f2140996"};
$encryptData=openssl_encrypt($data, 'aes-128-ecb', $key,0);
$encryptData="q0ND8eu/IsJPPHRhIjdaweGLiV3mDhnOPZU0D1i2o6Y2bRycEsy+Pxc/fVG+jMU3aon5G1r90Nff/wuyrvycqS+ArJz8O0FKbJ8CiSKtGvdqJx5mLbPrCZ5DSNUxVS/pTP3wM9SCBCwl6pr6aRVKJyTy961z21I/p0ercVjbYDuQP2iYarWBmTP6AwUf/jlrv0Bf5SZjbULKFxjtTFmM84LbjIiq5Sg40+AyagBJRkE=";
$data={"data"=>$encryptData};
POST(url,json_encode($data));
```
## 其他参数说明
- 动态算法:当前时间戳保证签名只在1分钟内有效,请求到达服务器后会将时间戳参数与当前服务器时间相比较,是否超过了60s。请确保时间与服务器时间同步 否则无效。