js分析 有_道_翻_译 md5

Posted my8100

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js分析 有_道_翻_译 md5相关的知识,希望对你有一定的参考价值。

0.参考

1.分析

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

技术分享图片

 

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

技术分享图片

 

1.3 CTRL+SHIFT+f 全局搜索 saltsign 定位到三处js代码块,通过搜索提交数据中的version:2.1的 2.1 锁定目标代码块:salt时间戳相关,sign通过md5生成

技术分享图片

 

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

技术分享图片

 

1.5 python 计算对比MD5

技术分享图片

 

2. 完整代码

技术分享图片
import time
import random
import re
import hashlib

import requests
from scrapy import Selector


url = 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 cookies
r_url = s.get(url)

# Get latest D for md5 from file fanyi.min.js
# <script type="text/javascript" src="http://shared.ydstatic.com/fanyi/newweb/v1.0.9/scripts/newweb/fanyi.min.js"></script>
# 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.运行代码

技术分享图片

 

以上是关于js分析 有_道_翻_译 md5的主要内容,如果未能解决你的问题,请参考以下文章

js逻辑封装_加密解密

MD5加密算法详细分析_C实现

Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)

系统管理模块_用户管理1_实现用户有关的功能_测试功能解决事务的问题对密码进行MD5摘要

js冲刺一下

[AndroidStudio]_[初级]_[配置自动完成的代码片段]