发送请求动态加密算法

**# 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。请确保时间与服务器时间同步 否则无效。