pointapi/common/verification.py
2021-04-02 01:10:23 +08:00

24 lines
545 B
Python

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