全部产品

签名算法

更新时间:2017-06-21 15:27:45   分享:   

  1. 序列化请求头。对所有以“x-acs-”开头的HTTP头,以如下算法拼接成字符串
    a) 抽取所有以“x-acs-”开头的HTTP头
    b) 对抽取出来的头按字典顺序排序
    c) 对每个头,按”HTTP头名称” + “:” + “HTTP头值” + “\n”拼接

  2. 序列化uri和query参数,由于只有clientInfo 参数,以如下算法拼接:uri + “?clientInfo=” + “ClientInfo的JSON字符串”, 注意这里不需要url encode。但在http请求中,是应该url encode的。

  3. 构建完整的待签名字符串:“POST\napplication/json\n” + “HTTP头Content-MD5的值” + “\n” + “application/json” + “\n” + “HTTP头Date的值” + “\n” + “序列化请求头” + “序列化uri和query参数”

  4. 对3中得到的字符串,进行HMAC-SHA1算法,并进行base64编码;然后放到HTTP头Authorization中的signature:”acs” + “ “ + AccessKeyId + “:” + signature。注意:acs和AccessKeyId之间的空格, 其中HMAC-SHA1算法中的secret key是和AccessKeyId对应的secret。

完整的图片同步检测待签名字符串示例:

  1. POST
  2. application/json
  3. C+5Y0crpO4sYgC2DNjycug==
  4. application/json
  5. Tue, 14 Mar 2017 06:29:50 GMT
  6. x-acs-signature-method:HMAC-SHA1
  7. x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
  8. x-acs-signature-version:1.0
  9. x-acs-version:2017-01-12
  10. /green/image/scan?clientInfo={"ip":"127.0.0.2","userId":"120234234","userNick":"Mike","userType":"others"}
本文导读目录
本文导读目录
以上内容是否对您有帮助?