ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

淘宝sign参数生成算法

2019-12-27 23:56:14  阅读:326  来源: 互联网

标签:appKey type token sign 算法 淘宝 subDomain data


淘宝sign参数生成算法

通过断点分析得出,计算函数在https://g.alicdn.com/mtb/lib-mtop/2.3.16/mtop.js中,通过搜索得出计算公式为:

j = h(d.token + “&” + i + “&” + g + “&” + c.data)

具体函数为

if (d.H5Request === !0) {
var
f = "//" + (d.prefix ? d.prefix + "." : "") + (d.subDomain ? d.subDomain + "." : "") + d.mainDomain + "/h5/" + c.api.toLowerCase() + "/" + c.v.toLowerCase() + "/", g = c.appKey || ("waptest" === d.subDomain ? "4272" : "12574478"), i = (new
    Date).getTime(), j = h(d.token + "&" + i + "&" + g + "&" + c.data), k = { jsv: x, appKey: g, t: i, sign: j }, l = { data: c.data, ua: c.ua }; Object.keys(c).forEach(function (a) {
    "undefined" == typeof
        k[a] && "undefined" == typeof
        l[a] && (k[a] = c[a])
    }), d.getJSONP ? k.type = "jsonp" : d.getOriginalJSONP ? k.type = "originaljsonp" : (d.getJSON || d.postJSON) && (k.type = "originaljson"), d.querystring = k, d.postdata = l, d.path = f
    }

进一步调试得知,h函数是计算md5值,因此可得知计算公式为:

md5Hex(token&t&appKey&data)

用python代码实现如下:

def get_sign(token, t, data):
    pre_sign = token + '&' + t + '&' + appKey + '&' + data
    sign = hashlib.md5(pre_sign.encode(encoding='UTF-8')).hexdigest()
    return sign

标签:appKey,type,token,sign,算法,淘宝,subDomain,data
来源: https://blog.51cto.com/14648912/2462566

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有