PHP接口签名验证写法(app)

一般app传过来 多传个sign字段 这个sign字段是根据前面传的参数生成的 PHP验证也是按照参数生成sign来验证 是不是签名验证正确 ps:注意 同时也要注意每次传参数相同的时候 sign不改验证也是正确的 所以适当的时候sign可以存起来判断有没有这个sign

<pre>
//这个是验证签名的写法
//判断sign是否相等
const API_KEY='my_key';
public static function verify($parameters)
{
//如果sign不一致 签名失败

if ($parameters['sign'] != self::str_encrypt($parameters)) {
return 0;
} else {
return 1;
}
}


//新版加密
public static function str_encrypt($parameters)
{
unset($parameters['time']);
unset($parameters['sign']);
$parameters['key']=self::API_KEY;
ksort($parameters);
$signPars = self::url_build($parameters);
$signPars=trim($signPars,'&');

return strtolower(md5($signPars));
}

//新版字符串拼接
public static function url_build($parameters)
{
$signPars = '';
foreach ($parameters as $k => $v) {
if (isset($v)) {
$signPars .= $k . '=' . $v . '&';
}
}
return $signPars;
}


</pre>

签名验证还有个好处就是防止刷接口(动态参数 比方说破解密码(因为要不断的换密码)

posted @ 2019-11-12 12:47  newmiracle宇宙  阅读(461)  评论(0编辑  收藏  举报