客户端与php传参含签名,php 传输数据数字签名设计客户端和服务端

客户端请求 生成一个url,我们去请求这个url,怎么发送请求不做赘述

$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

{

$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;

服务端校验数据

$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("校验通过");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值