import hashlib from settings import settings __all__ = 'restore_field', 'sort_kv', 'check_sign' def restore_field(data: dict) -> dict: res = dict() for k, v in data.items(): res[settings.FIELD_MAP.get(k) or k] = v return res def sort_kv(*args: dict): return ''.join(map(lambda item: ''.join(map(lambda x: f'{x[0]}{x[1]}', item.items())), args)) def check_sign(sign: str, *args: dict): s = sort_kv(*args) + settings.SALT if hashlib.md5(s.encode()).hexdigest() != sign: return False return True