首页 > 编程语言 > 详细

request 中url拼接排序参数与签名算法

时间:2019-07-19 17:01:33      阅读:111      评论:0      收藏:0      [点我收藏+]

一、参数要求:

{

appId:应用在后台创建应用时分配的应用编号,与应用密钥一一对应

sign:按照当前请求参数名的字母序进行升序排列(排序时区分大小写,除sign外,其它值不为空的参数都参与签名), 将所有参数值组合以key=value 的形式拼成一个新字符串,不同参数值“&”之间没有任何分隔符,最后加上对应的签名密钥appKey 进行签名运算。 如进行MD5签名运算的串为 MD5(key1=value1&key2=value2appKey)

time: 1970年以来的毫秒数,每次请求都要更新,有效期5分钟

version: 接口版本号,目前默认写1.0

}

二、请求path示例:http://test.com/**/**?account=string&appId=string&sign=string&time=0&version=string

三、代码实现:

def test():

  params = {

    "version": "1.0",
"account": "zhangsan",
"appId": "fdsadfsa",
"time": int(time.time() * 1000),
}
keys = sorted(params.keys())
appkey = ‘erewqrewq%^&&‘
nparams = OrderedDict()
for key in keys:
nparams.update({key: params[key]})
data = urlencode(nparams) + appkey
print(data)
m2 = hashlib.md5()
m2.update(data.encode(‘utf-8‘))
sign = m2.hexdigest()
prefix, suffix =nparams.split("&time=")
return "".join([server, uri, ‘?‘,prefix,
"&sign=", sign, "&time=", suffix])
 


 

request 中url拼接排序参数与签名算法

原文:https://www.cnblogs.com/deeptester-vv/p/11214187.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!