有道词典参数破解分析流程:
第一步:我们在页面输入需要翻译的单词 好人。输出结果是 A good man。请求接口是 url= http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
输入参数如下图所示。
第二步骤:遇到加密的请求参数,一般是去js代码里面找这个接口。
加密过程找sign,如下:
此处解密可以使用js文件解密,也可以使用python脚本,我以python脚本解密为例
import time import hashlib r=""+str(int(time.time()*1000)) ts=str(int(time.time()*1000)) i=str(ts)+str(random.randint(1,10)) salt=i e=input('请输入需要搜索内容') def get_md5(v): md5=hashlib.md5() md5.update(v) sign=md5.hexdigest() return sign def getSign(): sign="fanyideskweb" + e + i + "@6f#X3=cCuncYssPsuRUE" sign=get_md5(sign.encode('utf8')) return sign
发起url请求验证数据
import requests url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' headers={ "Origin":"http://fanyi.youdao.com", "User-Agent":"ozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", "Referer":"http://fanyi.youdao.com/", 'Cookie': 'OUTFOX_SEARCH_USER_ID=442349910@10.169.0.84; OUTFOX_SEARCH_USER_ID_NCOO=1306989708.8420544; _ntes_nnid=13af67d0899a02566d87f39e4d78c252,1555463153846; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; JSESSIONID=abc2B8Im3cGa_bJO-GdRw; ___rl__test__cookies=1558061350195' } data={ "i":e, "from":"AUTO", "to":"AUTO", "smartresult":"dict", "client":"fanyideskweb", "salt":salt, "sign":getSign(), "ts":ts, "bv":"6dde0faab0f2bdfa21065a7e1c9dd8df", "doctype":"json", "version":"2.1", "keyfrom":"fanyi.web", "action":"FY_BY_REALTlME", } res=requests.post(url=url,headers=headers,data=data).json() print(res)
解密成功哦,大家一起玩玩