|
发表于 2022-9-26 23:05:04
|
显示全部楼层
本帖最后由 临时号 于 2022-9-26 23:06 编辑
在fanyi.min.js这个文件中,定义了对salt,sign,lts的加密算法
在fanyi.min.js的第8380行左右,有这么一段代码
- var n = e("./jquery-1.7");
- e("./utils");
- e("./md5");
- var r = function(e) {
- var t = n.md5(navigator.appVersion)
- , r = "" + (new Date).getTime()
- , i = r + parseInt(10 * Math.random(), 10);
- return {
- ts: r,
- bv: t,
- salt: i,
- sign: n.md5("fanyideskweb" + e + i + "Ygy_4c=r#e#4EX^NUGUc5")
- }
- };
- t.recordUpdate = function(e) {
- var t = e.i
- , i = r(t);
- n.ajax({
- type: "POST",
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- url: "/bettertranslation",
- data: {
- i: e.i,
- client: "fanyideskweb",
- salt: i.salt,
- sign: i.sign,
- lts: i.ts,
- bv: i.bv,
- tgt: e.tgt,
- modifiedTgt: e.modifiedTgt,
- from: e.from,
- to: e.to
- },
- success: function(e) {},
- error: function(e) {}
- })
- }
复制代码
这是一段javascript代码,可以看到
对lts的加密代码是 r = "" + (new Date).getTime()
对salt的加密代码是i = r + parseInt(10 * Math.random(), 10);
对sign的加密代码是n.md5("fanyideskweb" + e + i + "Ygy_4c=r#e#4EX^NUGUc5")
将它们转化为对应的python代码就是
lts:lts = str(int(time.time()*1000))
salt:salt = lts + str(random.randint(0,10))
sign:
- sign_str = 'fanyideskweb' + text + salt + 'Ygy_4c=r#e#4EX^NUGUc5'
- m = hashlib.md5(sign_str.encode())
- sign = m.hexdigest()
复制代码
以上内容听不懂的没有关系,很正常 |
|