跳到主要内容

签名示例(Python)

import hashlib
from copy import deepcopy


def md5_sign(org_params, secret_key):
params = deepcopy(org_parms)
if "sign" in params:
params.pop("sign")

lists = []

for item in params:
lists.append(item)
lists.sort()

tmp = []
for key in lists:
value = params[key]
if isinstance(value, bytes):
value = value.decode("utf-8")

if isinstance(key, bytes):
key = key.decode("utf-8")

tmp.append("=".join([key, str(value)]))

if isinstance(secret_key, bytes):
secret_key = secret_key.decode("utf-8")

tmp.append("=".join(['secret_key', secret_key]))

param_str = "&".join(tmp)
if not isinstance(param_str, bytes):
param_str = param_str.encode('utf-8')
return hashlib.md5(param_str).hexdigest()


def check_sign(param, secret_key):
data = deepcopy(param)
if "sign" in data:
org_sign = data.pop('sign')
else:
return False

if not org_sign:
return False
if sign_type != 'MD5':
return False
nsg = md5_sign(data, secret_key)
print(nsg)
return org_sign == nsg


if __name__ == '__main__':
params = {"sing": "1", "method": "2", "id": "1231", "key": "apdfa", "sort": "serr"}
print(md5_sign(params, 'SECRET'))