標籤:需求 sage 進位 md5加密 mes 簡單 enc sed upd
前言
開放的介面為了避免被別人亂調用,浪費伺服器資源,這就涉及到簽名(Signature)加密了
API 使用簽名方法(Signature)對介面進行鑒權(Authentication)。每一次請求都需要在請求中包含簽名資訊, 以驗證使用者身份。
介面簽名
1.根據需求文檔,看介面的簽名規則,每個公司的簽名規則都不一樣,以下僅供參考:
2.從這個文檔中可以看出涉及到以下幾個點:
HMAC (Hash-based Message Authentication Code) 常用於介面簽名驗證
支援的演算法有 md5、sha1、sha256、sha512、adler32、crc32等
將二進位轉換為 HEX
將字串轉為小寫
對post請求body進行md5加密
Unix格式的時間戳記,單位s
MD5加密
1 1.md5加密比較簡單,直接調用hashlib內建的庫就能解決3 import hashlib4 # MD5加密5 def jiamimd5(src):6 m = hashlib.md5()7 m.update(src.encode(‘UTF-8‘))8 return m.hexdigest()
timestamp
1.產生Unix時間戳記,由於python裡面擷取的是帶小數點的,轉int類型就可以了
hmac_sha256加密
1 1.先用hmac裡面方法產生signature字串,注意new()裡面傳的兩個參數是bytes類型 2 import hmac 3 import hashlib 4 appkey = "需要申請" 5 strToSign = "根據文檔規則產生" 6 # hmac_sha256加密 7 signature = hmac.new(bytes(appkey, encoding=‘utf-8‘), bytes(strToSign, encoding=‘utf-8‘), digestmod=hashlib.sha256).digest() 8 # print(signature) 9 # 二進位轉為HEX10 HEX = signature.hex()11 # print(HEX)12 # 將字串換為小寫13 lowsigne = HEX.lower()
python介面自動化23-簽名(signature)鑒權(authentication)之加密(HEX、MD5、HMAC-SHA256)