腾讯建设网站视频视频,wordpress上传sh文件,后端开发技术,电商网站功能api数据签名作用#xff1a;通过使用签名可以验证数据在传输过程中是否被篡改或修改。接收方可以使用相同的签名算法和密钥对接收到的数据进行验证#xff0c;如果验证失败则表明数据被篡改过 1、数据发送方进行接口签名并传输签名字段
?php
// 请求URL
$url h…api数据签名作用通过使用签名可以验证数据在传输过程中是否被篡改或修改。接收方可以使用相同的签名算法和密钥对接收到的数据进行验证如果验证失败则表明数据被篡改过 1、数据发送方进行接口签名并传输签名字段
?php
// 请求URL
$url http://localhost/test22.php; // 替换为实际的URL
// 要发送的数据
$data array(name John Doe,email johnexample.com
);
$keyadsad123;
$data[sign]sign($data,$key);
// 发送POST请求
$response postRequest($url, $data);
// 处理响应
var_dump($response);function sign($array,$key)
{// 1. 对数组按键进行升序排序ksort($array);// 2. 将键值对按顺序拼接到字符串中$str ;foreach ($array as $k $v) {$str . $k . $v;}// 3. 添加密钥到拼接字符串末尾$restr $str . $key;// 4. 对拼接字符串进行SHA1加密并转换为大写$sign strtoupper(sha1($restr));// 5. 返回生成的签名return $sign;
}function postRequest($url, $data) {$postData http_build_query($data);$curl curl_init($url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);$response curl_exec($curl);if ($response false) {$error curl_error($curl);return cURL Error: . $error;} else {return $response;}curl_close($curl);
}
发送的签名数据 2、接口接受方进行数据签名并且对比签名
?php$keyadsad123;
$data$_POST;
unset($data[sign]);
$signsign($data,$key);if($sign$_POST[sign]){echo 验签成功;
}else{echo 验签失败;
}function sign($array,$key)
{// 1. 对数组按键进行升序排序ksort($array);// 2. 将键值对按顺序拼接到字符串中$str ;foreach ($array as $k $v) {$str . $k . $v;}// 3. 添加密钥到拼接字符串末尾$restr $str . $key;// 4. 对拼接字符串进行SHA1加密并转换为大写$sign strtoupper(sha1($restr));// 5. 返回生成的签名return $sign;
}