您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页API常用签名验证方法(PHP实现)

API常用签名验证方法(PHP实现)

来源:保捱科技网


2. 对排序后的map进行序列化处理成待签名字符串,拼接后的待签名字符串为

app_id=aabbc&format=xml&sign_type=HMAC-SHA1×tamp=2017-06-08 09:38:00

3. 根据HMAC-SHA1算法使用密钥提取待签名字符串的摘要(hash)签名并进行base_encode编码(便于显性传输和对比),假设签名密钥为 test ,则提取出的摘要签名并进行base_encode的值为

JqoEqPIVVor0eyRHMYiZftsycVo=

注意:由于有些数据根据HTTP协议需求,在网络传输过程中需要进行URLencoding,这样接收方才可以接收到正确的参数,但如果这个参数参与签名,那么待签名字符串必须是字符串原值而非URLencoding 的值。

代码实践

PHP示例

/**
 * 使用密钥生成HMAC-Sha1签名
 * @param array $params 请求参数
 * @param string $signKey 签名密钥
 * @return string
 */
function hmacSha1Sign($params,$signKey)
{
 ksort($params);
 
 $paramString = '';
 foreach ($params as $key => $value) {
 if (is_null($value) || $value=='' || $key == 'sign') {
 continue;
 }
 $paramString .= $key.'='.$value.'&';
 }
 $paramString = substr($paramString,0,-1);
 $sign = base_encode(hash_hmac("sha1", $paramString, $signKey, $raw_output=TRUE));
 return $sign;
}

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务