釘釘掃碼登錄中的簽名算法在python中的實現

簽名算法爲HmacSHA256,簽名數據是當前時間戳timestamp,密鑰是appId對應的appSecret計算出來的簽名值,算出來的digest再經過base64加密後即是所需要的簽名數據。官方文檔中只給了Java和PHP的示例demo,因此,根據Java和PHP的demo寫一個python版的。

 1 import hmac
 2 from base64 import standard_b64encode
 3 
 4 
 5 def get_ding_talk_signature(app_secret, utc_timestamp):
 6     """
 7     :param app_secret: 釘釘開發者文檔創建的app密鑰
 8     :param utc_timestamp: 官方文檔中要簽名的數據,單位是毫秒時間戳
 9     :return: 爲所需要的簽名值,此值爲可逆的
10     """
11     digest = hmac.HMAC(key=app_secret.encode('utf8'),
msg=utc_timestamp.encode('utf8'),
digestmod=hmac._hashlib.sha256).digest() 14 signature = standard_b64encode(digest).decode('utf8') 15 return signature

以下是釘釘官方的簽名計算文檔鏈接

https://ding-doc.dingtalk.com/doc#/faquestions/hxs5v9

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章