目录
话不多说,直接干
接口:aHR0cHM6Ly9kaWN0LnlvdWRhby5jb20vd2VidHJhbnNsYXRl
一.逆向请求参数
通过多次请求发现 只有sign和mysticTime(时间戳)是变化的,
sign有32位,估计是MD5加密,到底是不是,还得打断点调试一下。
请求加密参数:sign:a13c54dae610f25771a9922819f840e8
全局搜索sign:
这个位置很明显打上断点,进去看看,很明显标准MD5加密
加密参数如下:
`client=${l}&mysticTime=${e}&product=${d}&key=${t}`
'client=fanyideskweb&mysticTime=fsdsogkndfokasodnaso&product=webfanyi&key=1680856846833'
通过测试key是写死的fsdsogkndfokasodnaso
直接进行请求就可以了
import requests
import hashlib
import time
localtime = str(int(time.time() * 1000))
data = "client=fanyideskweb&mysticTime={}&product=webfanyi&key=fsdsogkndfokasodnaso".format(localtime)
sign = hashlib.md5(data.encode(encoding='utf-8')).hexdigest()#python中的MD5 加密
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Referer": "https://fanyi.youdao.com/index.html"
}
cookies = {
"OUTFOX_SEARCH_USER_ID": "[email protected]",
"OUTFOX_SEARCH_USER_ID_NCOO": "86107500.53660281"
}
url = "https://dict.youdao.com/webtranslate"
word = input('请输入翻译内容:')
data = {
"i": f"{word}",
"from": "auto",
"to": "",
"dictResult": "true",
"keyid": "webfanyi",
"sign": sign,
"client": "fanyideskweb",
"product": "webfanyi",
"appVersion": "1.0.0",
"vendor": "web",
"pointParam": "client,mysticTime,product",
"mysticTime": localtime,
"keyfrom": "fanyi.web"
}
response = requests.post(url=url, headers=headers, cookies=cookies, data=data).text
print(response)
返回加密数据成功
二.解密返回参数
返回数据加密,可以通过hook找JSON.parse 这里有道给出了解密接口位置(有点猖狂了)
hook脚本:
var my_parse = JSON.parse;
JSON.parse = function (params) {
debugger
console.log("json_parse params:",params);
return my_pa