博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JS 分析] 有_道_翻_译 MD5 加盐
阅读量:5325 次
发布时间:2019-06-14

本文共 1578 字,大约阅读时间需要 5 分钟。

0.参考

1.分析

1.1 输入翻译内容,手动点击“翻译”按钮

 

1.2 查看提交数据,通过多次提交确认变化量

 

1.3 Ctrl+Shift+f 全局搜索 saltsign 定位到三处js代码块,通过搜索提交数据中的`version:2.1`的关键字`2.1`锁定目标代码块:salt 与时间戳相关,通过 MD5 生成 

sign

 

1.4 在上方函数入口添加断点,再次点击“翻译”, F10开始步进调试

 

1.5 python 计算对比 MD5

 

2. 完整代码

import timeimport randomimport reimport hashlibimport requestsfrom scrapy import Selectorurl = 'http://fanyi.youdao.com/'s = requests.Session()s.headers = {    'Referer': 'http://fanyi.youdao.com',    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'}# Get cookiesr_url = s.get(url)# Get latest D for md5 from file fanyi.min.js# # sel = Selector(text=r_url.text)# url_js = sel.css('script::attr(src)').re_first('.*fanyi.min.js')# r_js = s.get(url_js)# D = re.search(r'D\s*=\s*"(.*?)"', r_js.text).group(1)# print(D)D = 'ebSeFb%=XZ%T[KZ)c(sy!'url_post = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'data = dict(    # i = 'have you eaten',    i = '你吃饭了吗?',        # from = 'AUTO',    to = 'AUTO',    smartresult = 'dict',    client = 'fanyideskweb',    doctype = 'json',    version = '2.1',    keyfrom = 'fanyi.web',    action = 'FY_BY_CLICKBUTTION',    typoResult = 'false')salt = str(int(time.time()*1000) + random.randint(0, 9))print(salt)m = hashlib.md5()m.update((data['client']+data['i']+salt+D).encode('utf-8'))sign = m.hexdigest()print(sign)data.update({
'from': 'AUTO', 'salt': salt, 'sign': sign})r_post = s.post(url_post, data=data)print(r_post.json())
View Code

 

3.运行代码

 

转载于:https://www.cnblogs.com/my8100/p/js_youdaofanyi.html

你可能感兴趣的文章
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
<转>Shell脚本相关
查看>>
[leetcode]403. Frog Jump青蛙过河
查看>>
英语音节知识
查看>>
IEEE 802.15.4协议学习之MAC层
查看>>
AngularJS学习篇(十三)
查看>>
Tableau 学习资料
查看>>
中断和异常
查看>>
lucene 全文检索工具的介绍
查看>>
C# MD5-16位加密实例,32位加密实例
查看>>
无线点餐系统初步构思
查看>>
AJAX
查看>>
前端之CSS
查看>>
List注意点【修改】
查看>>
sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
查看>>
拓扑排序的原理及其实现
查看>>
对StageWebView捕获位图时空白
查看>>
Provison Profile管理及存放路径
查看>>