import hmac import hashlib import json SECRET_KEY = "OArmXWpMeX8n" # 小程序中使用的 key def generate_signature(data: dict, key: str = SECRET_KEY) -> str: """ 生成签名 :param data: 请求数据 (dict) :param key: 签名密钥 :return: 签名字符串 """ data_str = json.dumps(data, separators=(',', ':'), ensure_ascii=False) return hmac.new(key.encode(), data_str.encode(), hashlib.sha256).hexdigest() def verify_signature(data: dict, client_signature: str, key: str = SECRET_KEY) -> bool: """ 校验签名 :param data: 请求数据 (dict) :param client_signature: 客户端提供的签名 :param key: 签名密钥 :return: 签名是否有效 """ server_signature = generate_signature(data, key) return hmac.compare_digest(server_signature, client_signature)