ymx / utils /utils.py
xulh
代码初始化
58ca197
raw
history blame contribute delete
844 Bytes
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)