API 请求签名生成规则

总结一下常见的 签名生成规则

规则1

每个 HTTP 请求中均需要携带以下的 HTTP 标头字段(HTTP Request Header)

默认名称 带 RC-前缀 类型 说明
App-Key RC-App-Key String 后台分配的 App Key
Nonce RC-Nonce String 随机数,不超过 18 个字符
Timestamp RC-Timestamp String 时间戳,从1970年1月1日0点0分0秒开始到现在的毫秒数
Signature RC-Signature String 数据签名。您需要参考下文的签名计算方法生成该字段的值

签名计算方法

将以下三个字符串按顺序(App Secret + Nonce + Timestamp)拼接成一个字符串,进行 SHA1 哈希计算。

  • App Secret:应用 App Key 所对应的 App Secret。
  • Nonce:随机数
  • Timestamp:时间戳

以下是计算数据签名的 PHP 代码示例:

// 重置随机数种子。
srand((double)microtime()*1000000);

$appSecret = 'your-own-app-secret'; // App Secret
$nonce = rand(); // 获取随机数
$timestamp = time()*1000; // 获取时间戳(毫秒)

$signature = sha1($appSecret.$nonce.$timestamp);

规则2

$appkey='abc';//双方约定的key,不参与http请求,只用于计算签名
$sign=112233;//请求带的签名
$params=[
    'timestamp'=>time(),
    'name'=>111,
];
$params['appkey']=$appkey;
ksort($params);//数组key以字典顺序排序
$str='';
foreach ($params as $key=>$value){
    $str.=$value;
}
//生成签名
$sign2=md5($str);

感谢阅读这篇文章,如果你喜欢,或者遇到了问题,可以关注我的公众号