前言
開放的接口為了避免被別人亂調用,浪費服務器資源,這就涉及到簽名(Signature)加密了
API 使用簽名方法(Signature)對接口進行鑒權(Authentication)。每一次請求都需要在請求中包含簽名信息, 以驗證用戶身份。
接口簽名
1.根據需求文檔,看接口的簽名規則,每個公司的簽名規則都不一樣,以下僅供參考:
2.從這個文檔中可以看出涉及到以下幾個點:
- HMAC-SHA256
HMAC (Hash-based Message Authentication Code) 常用於接口簽名驗證
支持的算法有 md5、sha1、sha256、sha512、adler32、crc32等
- Binary2HEX
將二進制轉換為 HEX
- Lowercase
將字符串轉為小寫
- MD5(HTTP body)
對post請求body進行md5加密
- Unix時間戳
Unix格式的時間戳,單位s
MD5加密
1.md5加密比較簡單,直接調用hashlib內置的庫就能解決
import hashlib
# MD5加密
def jiamimd5(src):
m = hashlib.md5()
m.update(src.encode('UTF-8'))
return m.hexdigest()
timestamp
1.生成Unix時間戳,由於python里面獲取的是帶小數點的,轉int類型就可以了
hmac_sha256加密
1.先用hmac里面方法生成signature字符串,注意new()里面傳的兩個參數是bytes類型
import hmac
import hashlib
appkey = "需要申請"
strToSign = "根據文檔規則生成"
# hmac_sha256加密
signature = hmac.new(bytes(appkey, encoding='utf-8'), bytes(strToSign, encoding='utf-8'), digestmod=hashlib.sha256).digest()
# print(signature)
# 二進制轉為HEX
HEX = signature.hex()
# print(HEX)
# 將字符串換為小寫
lowsigne = HEX.lower()
---------------------------------python接口自動化完整版-------------------------
全書購買地址 https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695
作者:上海-悠悠 QQ交流群:588402570
也可以關注下我的個人公眾號: