原理
请求方对请求数据按一定的规则排序,加上appkey码一起通过MD5加密生成签名,然后把请求数据和签名发给服务方,服务方拿到数据后,找到请求方的appkey,然后按同样的规则处理数据,并加上appkey通过MD5加密也生成签名,然后和请求方生成的签名去对比,如果值一样,签名验证通过。
MD5生成签名的流程
1.将请求字典中的空值,或者没必要的参数都去掉(如sign、sign_type等);
2.对字典进行排序(按ASCII码从小到大);
3.把字典中的所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
4.再加上appkey值,对形成的数据进行MD5加密,生成签名
python代码实现
class SignatureAndVerification(object):
"""MD5签名和验签"""
@classmethod
def data_processing(cls,data):
"""
:param data: 需要签名的数据,字典类型
:return: 处理后的字符串,格式为:参数名称=参数值,并用&连接
"""
if "sign" in data:
del data["sign"]
if "sign_type" in data:
del data["sign_type"]
dataList &