import hmac import base64 import hashlib from nonebot.utils import logger_wrapper log = logger_wrapper("DING") def calc_hmac_base64(timestamp: str, secret: str): secret_enc = secret.encode("utf-8") string_to_sign = "{}\n{}".format(timestamp, secret) string_to_sign_enc = string_to_sign.encode("utf-8") hmac_code = hmac.new( secret_enc, string_to_sign_enc, digestmod=hashlib.sha256 ).digest() return base64.b64encode(hmac_code)