釘釘掃碼登錄中的簽名算法在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM