今天是:2025年6月23日 星期一
记住用户名密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?php // 请求URL $url = "http://localhost/test22.php" ; // 替换为实际的URL // 要发送的数据 $data = array ( 'name' => 'John Doe' , 'email' => 'john@example.com' ); $key = "adsad123" ; $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、接口接受方,进行数据签名并且对比签名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php $key = "adsad123" ; $data = $_POST ; unset( $data [ 'sign' ]); $sign =sign( $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 ; } |
目前有 0 条留言 其中:访客:0 条, 博主:0 条