美文网首页
淘宝手机端sign加密算法

淘宝手机端sign加密算法

作者: 八维数据 | 来源:发表于2019-07-16 16:09 被阅读0次

    看了很多资料,没有一个用php计算sign值的。这次分享的方法也是经过自己测试比较合理的算法处理了。

    使用Chrome的移动请求头打开这个网站,https://s.m.taobao.com/h5?q=%E6%B1%BD%E8%BD%A6,然后打开开发者工具

    开发者模式

    可以看到要采集的数据都在这个网址里:https://acs.m.taobao.com/h5/mtop.taobao.wsearch.h5search/1.0/?jsv=2.3.16&appKey=12574478&t=1563263452164&sign=f7f3445e82c1da9f8fc9622ad2097cb0&api=mtop.taobao.wsearch.h5search&v=1.0&H5Request=true&ecode=1&AntiCreep=true&AntiFlool=true&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22q%22%3A%22%E6%B1%BD%E8%BD%A6%22%2C%22sst%22%3A%221%22%2C%22n%22%3A20%2C%22buying%22%3A%22buyitnow%22%2C%22m%22%3A%22api4h5%22%2C%22token4h5%22%3A%22%22%2C%22abtest%22%3A%2258%22%2C%22wlsort%22%3A%2258%22%2C%22page%22%3A1%7D

    请求数据

    这个网址中的重要参数就是这些,简单看看,很多都是固定值,可能会变的有时间戳、data中的搜索关键词、页码等信息。

    重要的就是sign是怎 .....么 来 的。

    下面开始一步步介绍。

    首先搜索sign数值,看看在其他地方时候是否出现过

    sign的值是有一个计算公式的,一般多是会保存在js 文件里的,我一个个搜索sign查找看。

    找到 mtop.js中保存了sign算法

    最终确定关键代码在mtop.js 中,也就是https://g.alicdn.com/mtb/lib-mtop/2.3.16/mtop.js

    格式化代码,并搜索sign,确定代码位置。直接贴出来:

    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

                };

            ///

            }

    可以看到sign等于j,j等于h(d.token + "&" + i + "&" + g + "&" + c.data),感觉是一些字符串通过“&”连接起来。我们关注的是如下参数:

    d.token

    i

    g

    c.data

    获取d.token

    这个token是在cookie中获取的。

    首先无cookie状态下去访问该请求:https://acs.m.taobao.com/h5/mtop.taobao.wsearch.h5search/1.0/##,对方会返回关键Cookies信息,_m_h5_tk和_m_h5_tk_enc,接下来会用到。

    接下来的就比较简单了,i 很明显就是时间戳,g是定值:12574478,那么data是什么呢,我们可以直接在请求数据中找到data数据。

    请求

    好了我们现在已经可以找到所有的参数了,如下

    > d.token + "&" + i + "&" + g + "&" + c.data

    < "1e1715c98fc5b95f39e86f6223015204&1563263452164&12574478&{"q":"汽车","sst":"1","n":20,"buying":"buyitnow","m":"api4h5","token4h5":"","abtest":"58","wlsort":"58","page":1}"

    计算sign

    php的 sign生成公式是:

    md5($token.'&'.$t.'&'.$appKey.'&'.$data)

    公式可能会发生变化,只要掌握了断点调试的方法,分析起来会简单。

    这个 还不知道 怎么提取cookie的 token值

    投稿人:八维数据

    相关文章

      网友评论

          本文标题:淘宝手机端sign加密算法

          本文链接:https://www.haomeiwen.com/subject/iyjtlctx.html