php生成签名

// 生成签名
private function makeSignature($params)
{
foreach ($params as $key=>$value){
$arr[$key] = $key;
}

sort($arr); //字典排序的作用就是防止因为参数顺序不一致而导致下面拼接加密不同
$str = "";
foreach ($arr as $k => $v) {
$str = $str.$arr[$k].$params[$v];
}

$resStr=$str.$secret;
$signature = strtoupper(sha1($resStr));
$params['signature'] = $signature;
return $params;
}

// 签名验证
public function validSignature($params)
{
$signature = $params['signature'];

unset($params['signature']);
$newSign = $this->makeSignature($params);
if($signature == $newSign['signature']){
return true;
} else {
return false;
}
}
原文地址:https://www.cnblogs.com/php-linux/p/12710705.html