本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。
本文介紹了調用內容檢測API的簽名機制。
HMAC-SHA1簽名流程(預設)
- 序列化要求標頭。
按照以下方式,將所有以
x-acs-
開頭的HTTP頭拼接成字串:
- 抽取所有以
x-acs-
開頭的HTTP頭。 - 對抽取出來的頭按字典順序排序。
- 對每個HTTP頭,按
"HTTP頭名稱" + ":" + "HTTP頭值" + "\n"
拼接。
- 序列化URI和query參數。
按照
uri + "?clientInfo=" + "ClientInfo的JSON字串"
方式拼接URI和
clientInfo
參數。
- 構建完整的待簽名字串。
按照以下方式,構建完整的待簽名字串:
"POST\napplication/json\n" +
"HTTP頭Content-MD5的值" + "\n" +
"application/json" + "\n" +
"HTTP頭Date的值" + "\n" +
"序列化要求標頭" + "\n"
"序列化uri和query參數"
以下是一個完整的調用圖片同步檢測介面的待簽名字串樣本:
POST
application/json
C+5Y0crpO4sYgC2DNjycug==
application/json
Tue, 14 Mar 2017 06:29:50 GMT
x-acs-signature-method:HMAC-SHA1
x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
x-acs-signature-version:1.0
x-acs-version:2018-05-09
/green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}
- 產生簽名。
- 對步驟3中得到的字串,使用AccessKey Secret進行HMAC-SHA1演算法加密得到bytes數組。
- 對HMAC-SHA1加密得到的bytes數組進行base64編碼。
- 將base64編碼後的結果放到HTTP頭
Authorization
中的signature
:"acs" + " " + AccessKeyId + ":" + signature
。
HMAC-SM3簽名流程
- 序列化要求標頭。
按照以下方式,將所有以
x-acs-
開頭的HTTP頭拼接成字串:
- 抽取所有以
x-acs-
開頭的HTTP頭。 - 對抽取出來的頭按字典順序排序。
- 對每個HTTP頭,按
"HTTP頭名稱" + ":" + "HTTP頭值" + "\n"
拼接。
- 序列化URI和query參數。
按照
uri + "?clientInfo=" + "ClientInfo的JSON字串"
方式拼接URI和
clientInfo
參數。
- 構建完整的待簽名字串。
按照以下方式,構建完整的待簽名字串:
"POST" + "\n" +
"application/json" + "\n" +
"HTTP頭Date的值" + "\n" +
"序列化要求標頭" + "\n"
"序列化uri和query參數"
以下是一個完整的調用圖片同步檢測介面的待簽名字串樣本:
POST
application/json
application/json
Wed,29Mar202301:44:08GMT
x-acs-content-sm3:690c6c542ac53eaa1e2ad724f34d60e689d11db88a2d89469be1fdb2f20fc35c
x-acs-signature-method:HMAC-SM3
x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
x-acs-signature-version:1.0
x-acs-version:2018-05-09
/green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}
- 產生簽名。
- 對步驟3中得到的字串,使用AccessKey Secret進行HMAC-SM3演算法加密得到bytes數組。
- 對HMAC-SM3加密得到的bytes數組進行base64編碼。
- 將base64編碼後的結果放到HTTP頭
Authorization
中的signature
:"acs" + " " + AccessKeyId + ":" + signature
。