很多小伙伴都想去爬百度翻译,然后发现sign这个js生成的值却过不了,没关系,接下来的3分钟让你轻松的完成百度sign破解

第一步还是老样子,全局查找sign,给他赋值的地方打上断点

我们可以清楚的看见上图sign这个值传入了一个参数,并且调用了m函数,这个a就是我们输入框的值,也就是说,这个参数把我们输入框的值传入了,进去,接下来,再去用控制台调用这个函数,看看他是否是我们要找的地方

通过运算结果,没错就是他了,接下来是给js代码进行分离,我们看看,这个函数最后是走什么地方结束的,断点继续更进

我们发现,函数最后通过p去进行赋值,并且在这里又调用了一次函数,这个地方,我们继续更进,

最后我们发现这个n函数是这个,现在我们东西齐全了,就可以完成参数,调用,最后在下面双手奉献上代码

function n(r, o) {for (var t = 0; t < o.length - 2; t += 3) {var a = o.charAt(t + 2);a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a),a = "+" === o.charAt(t + 1) ? r >>> a : r << a,r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a}return r
}
function e(r) {var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);var i = null;if (null === o) {var t = r.length;t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10))} else {for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++)"" !== e[C] && f.push.apply(f, a(e[C].split(""))),C !== h - 1 && f.push(o[C]);var g = f.length;g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""))}var u = void 0, l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);u = null !== i ? i : (i = console[l] || "") || "";for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {var A = r.charCodeAt(v);128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)),S[c++] = A >> 18 | 240,S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224,S[c++] = A >> 6 & 63 | 128),S[c++] = 63 & A | 128)}for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++)p += S[b],p = n(p, F);return p = n(p, D),p ^= s,0 > p && (p = (2147483647 & p) + 2147483648),p %= 1e6,p.toString() + "." + (p ^ m)
}
function mo(word) {var result = e(word)return result
}
// 沫
console.log(mo('test'))

嘿嘿,完成逆向,在这里就不加图占位置了。

百度翻译sign签名算法相关推荐

  1. JS逆向-百度翻译sign

    前言 本文是该专栏的第36篇,后面会持续分享python爬虫干货知识,记得关注. 有粉丝留言,近期需要做个翻译功能,考虑到百度翻译语言语种比较全面,但是它的参数被逆向加密了,对于这种情况需要怎么处理呢 ...

  2. 最新 python 3 实现百度翻译 sign 逆向

    涉及到 sign ,  废话不多说,复制即可使用. 新建一个js 文件 内容如下 文件名是:baidusign.js : var i = "320305.131321201"fun ...

  3. 用python调用execjs破解百度翻译sign

    打开开发者工具:查翻译发送的请求信息,得到其 FormData image 看到有个sign,接下来就破解一下,sign sign 这个参数,应该如何设置?我们在 js 代码中,发现在某个 index ...

  4. 用execjs破解百度翻译sign

    打开开发者工具:查翻译发送的请求信息,得到其 FormData 看到有个sign,接下来就破解一下,sign sign 这个参数,应该如何设置?我们在 js 代码中,发现在某个 index_xxx 开 ...

  5. 百度翻译sign加密算法

    var i = "en";function n(r, o) {for (var t = 0; t < o.length - 2; t += 3) {var e = o.cha ...

  6. 爬虫之js加密参数破解步骤分析-百度翻译移动版sign值的获取

    百度翻译sign值的获取 前言语 请求参数分析 动态分析参数生成方式 定位参数生成的位置 断点调试 使用python生成sign 第一种方式-读懂js代码,翻译成python 使用执行js的包 前言语 ...

  7. JS逆向——破解百度翻译参数(sign)爬虫 超级详细

    一.分析请求参数 打开地址: https://fanyi.baidu.com/ 打开Chrome调试工具,然后随意输入一段文字,查看抓包结果. post请求 Form data 参数 如上图所示,Fo ...

  8. 最新百度翻译爬虫 获取sign(python爬虫)

    环境: python3 直接上代码: Cookie.User-Agent 填自己的 1.BaiDuTranslateWeb.py import requests import execjs impor ...

  9. 百度翻译翻译长句python调用逆向js生成的sign不正确

    对于一个小公司的程序员或者学生党,没有太多资金的支持,所以我们一般会寻找一些免费的渠道来满足自己需求,例如我现在做爬虫需要翻译大量excel文档,谷歌翻译有google_trans_new这个包,但是 ...

最新文章

  1. 第十六届全国大学生智能车安徽赛区承办学校参赛队伍
  2. 开发日记-20190608 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  3. 关于开源软件的书籍一定要尽量提供搭配好的软件版本
  4. java基础10(IO流)-字节流
  5. win8.1下jdk的安装和环境变量的配置 eclipse的安装和汉化
  6. 【其他】U盘安装Ubuntu12.04成功后系统无法启动的问题
  7. 艾宾浩斯记忆表格excel_Excel全年学习复习计划表(艾宾浩斯遗忘曲线)
  8. 一阶系统开环传递函数表达式_自控原理之系统辨识--入门介绍
  9. jsoup: Java HTML Parser
  10. 网易云通讯与视频_总结_00_资源帖
  11. python 结构体数组的正确初始化方法
  12. Ubuntu20.04安装gamit10.7
  13. flink实战-实时计算平台通过api停止流任务
  14. 如何从列联表获得对应分析的结果
  15. 星际大战(飞机游戏系列)
  16. WordPress系列教程(一)----WordPress环境准备与安装
  17. js实现手机摇一摇以及震动功能
  18. win10:打印机无故脱机、打印机缺纸故障处理
  19. VMware虚拟机安装及Linux系统的配置
  20. 数据挖掘与数据化运营实战

热门文章

  1. 【实验课】一群人围一圈,隔一个杀一个,剩一个,最后活谁?
  2. Word处理控件Aspose.Words功能演示:使用C#创建MS Word文档
  3. 中国自动化行业发展和现状
  4. Censor KMP算法
  5. JVM----②垃圾回收
  6. springboot+jsp老年人活动中心健康饮食推荐系统
  7. 微信防红域名如何解决
  8. 看完这些自动化测试面试题,字节直接给我发offer
  9. PS软件的画笔怎么调出圆圈?
  10. 数据科学 vs. 大数据 vs. 数据分析:定义,内涵,应用,所需技能