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>
签名验证还有个好处就是防止刷接口(动态参数 比方说破解密码(因为要不断的换密码)
如果遇到什么不懂的地方直接关注公众号留言(本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。)
作者:newmiracle
出处:https://www.cnblogs.com/newmiracle/