Oudasheng 2020-01-06
签名算法为HmacSHA256,签名数据是当前时间戳timestamp,密钥是appId对应的appSecret计算出来的签名值,算出来的digest再经过base64加密后即是所需要的签名数据。官方文档中只给了Java和PHP的示例demo,因此,根据Java和PHP的demo写一个python版的。
import hmac from base64 import standard_b64encode def get_ding_talk_signature(app_secret, utc_timestamp): """ :param app_secret: 钉钉开发者文档创建的app密钥 :param utc_timestamp: 官方文档中要签名的数据,单位是毫秒时间戳 :return: 为所需要的签名值,此值为可逆的 """ digest = hmac.HMAC(key=app_secret.encode(‘utf8‘),msg=utc_timestamp.encode(‘utf8‘), digestmod=hmac._hashlib.sha256).digest() signature = standard_b64encode(digest).decode(‘utf8‘) return signature
以下是钉钉官方的签名计算文档链接