客户端请求 生成一个url,我们去请求这个url,怎么发送请求不做赘述
<?php
$appkey='gdafdasfd';
$appSecret='fdasfdsaf';
$token='fdsafdasfd';
$nonce=getRandom(32);
$ip='17.02.0.26';
$time=time();;
$signature="_ip=$ip&_key=$appkey&_nonce=$nonce&_time=$time&token=$token";
$sig = hash_hmac('sha256', $signature, $appSecret);
function getRandom($param){
$str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$key = "";
for($i=0;$i<$param;$i++)
{
$key .= $str{mt_rand(0,61)}; //生成php随机数
}
return $key;
}
$url="http://127.0.0.1/get.php?_ip=$ip&_key=$appkey&_nonce=$nonce&_sign=$sig&_time=$time&_token=$token";
echo $url;
服务端校验数据
<?php
$appkey=$_GET['_key'];
$appSecret='fdasfdsaf';
$token=$_GET['_token'];
$nonce=$_GET['_nonce'];
$ip='17.02.0.26';
$time=$_GET['_time'];
if(time()-$time>5){
exit("请求已经超时");
}else{
$signature="_ip=$ip&_key=$appkey&_nonce=$nonce&_time=$time&token=$token";
$sig = hash_hmac('sha256', $signature, $appSecret);
if($sig !==$_GET['_sign']){
exit("数字签名验证错误");
}else{
exit("校验通过");
}
}