python介面自動化23-簽名(signature)鑒權(authentication)之加密(HEX、MD5、HMAC-SHA256)

來源:互聯網
上載者:User

標籤:需求   sage   進位   md5加密   mes   簡單   enc   sed   upd   

前言

開放的介面為了避免被別人亂調用,浪費伺服器資源,這就涉及到簽名(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 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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.