一般app传过来 多传个sign字段 这个sign字段是根据前面传的参数生成的 PHP验证也是按照参数生成sign来验证 是不是签名验证正确 ps:注意 同时也要注意每次传参数相同的时候 sign不改验证也是正确的 所以适当的时候sign可以存起来判断有没有这个sign
//这个是验证签名的写法
//判断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;
}
签名验证还有个好处就是防止刷接口(动态参数 比方说破解密码(因为要不断的换密码)
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/19169.html