请问这个 POST 请求里面的 sign 可能是如何构成的?

讨论 未结 7 62
xiaopanzi
xiaopanzi 会员 2022年5月27日 14:56 发表
<p>我试着通过脚本在当当网( <a href="https://login.dangdang.com/" rel="nofollow">https://login.dangdang.com/</a> )判断一个手机号码是否已经注册过,下面的浏览器发送的参数:</p> <pre><code>t: 1653661422695 ct: pc permanent_id: 20220527222303660356159866560768420 requestId: 2205272223209660Q3KN8O_ab63 mobile_phone: 13162072077 sign: 01ZJ+f8vDhYyMogVCLJl7e9kMAS7RfHsqPDz5UkUrMgF1Ah2r2hW+XOBNYnVooLW </code></pre> <p>其中<code>t</code>是时间戳,<code>ct</code>是客户端类型。<code>permanent_id</code>的含义不清楚,但可能和 expire 时间有关;<code>requestId</code>可能是由时间字符串加上一些随机数构成。</p> <p>多次调整<code>mobile_phone</code>,发现<code>permanent_id</code>和<code>requestId</code>不变,但其签名<code>sign</code>会发生改变。按照爬虫的设计,签名应该是对请求数据进行某种加密。</p> <p>请问大家有思路吗?</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
7个回复
  • F12
    2022年5月27日 15:26
    能有什么思路,分析源码呗
    0 0
  • xiaopanzi
    2022年5月27日 15:26
    But, 当当的源码怎么在我手里?可能我问的不清楚:通过上面 sign 的特征(比如长度),它可能是通过如何加密方式 /算法实现的?
    0 0
  • viiber
    2022年5月27日 15:26
    基本上很难看出来,除非是恰好(比如说 ef 之类的开头看多了就会知道是 base64 加密过的),这种说实话我也没头绪,写爬虫的时候一般就用 selenium 来规避这些参数的模拟了。
    0 0
  • des
    2022年5月27日 15:26
    前端 js 不是直接看的到吗,自己扒代码
    0 0
  • cpstar
    2022年5月27日 16:26
    OP 2# 你看他加载的 JS 库,基本就能猜出用什么加密,其实也不能算加密,也就是 MD5 、SHA1 、SHA256 之类的算摘要
    0 0
  • icy37785
    2022年5月27日 18:59
    #2 前端代码直接 js 里就看得到呀,这前端加密的直接扒呗
    0 0