pointapi/common/verification.py
2021-04-02 13:44:47 +08:00

24 lines
558 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]}', sorted(item.items()))), args))
def check_sign(sign: str, salt: str, *args: dict):
s = sort_kv(*args) + salt
if hashlib.md5(s.encode()).hexdigest() != sign:
return False
return True