百度翻譯sign值的加密方法

2021-10-08 01:15:30 字數 2725 閱讀 9610

由於是ajax載入的,所以直接在network找到xhr的鏈結,找一下資料在哪個請求裡面。

首先發現第乙個請求是post方式請求的,返回的內容是一串json,資訊如上,可以斷定為此請求是判斷輸入的語言是中文還是英文,中文返回lan:「zh」,英文返回lan:「en」。

第二個請求也是post請求方式,攜帶引數有「from=en&to=zh&query=python&transtype=realtime&******_means_flag=3&sign=587387.791882&token=3f7b9ab5c1a408fbbaa65051fac0a32e&domain=common」,可以看出query是輸入框輸入要翻譯的內容,在輸入框輸入其他內容後發現,有四個引數是變的,即要翻譯的方式:from,to;要翻譯的內容query,以及乙個加密引數sign值。

接下來就js斷點除錯,找出這個sign值的加密方法。

第三步:js斷點除錯,找出sign值加密方法

上一步我們發現我們要的資料在包含的鏈結裡,因此我們在sources裡把包含這個請求路徑的鏈結加入斷點中,然後選中。

接下來**輸入並請求

輸入框輸入python,就會跳轉到打斷點的位置

**會定位到上邊的位置,就是這發出了上述鏈結的請求。繼續一步步除錯。

你會發現在這個js檔案裡有乙個h變數裡有想要的sign值,接下來看上下文,找到sign: y(n),發現sign是y函式傳入n引數生成的,此處n為輸入的「python」,找到y函式。

看上文發現y函式就是7963行的e函式,r就是引數n

**研究發現需要乙個i變數和n函式,n函式在上邊是有的,直接擼下來,接下來找這個i變數的值。

在7978行打斷點除錯後發現,i變數其實等於window[l],l=「gtk」,所以可以直接定義 var i = 「320305.131321201」;就可以了。

摳下來的js**如下:

var i = "320305.131321201";

function n(r, o)

return r

}function e(r) else

var u = void 0

, l = "" + string.fromcharcode(103) + string.fromcharcode(116) + string.fromcharcode(107);

u = null !== i ? i : (i = window[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++)

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)

}

python執行js用execjs就可以了。

access百度翻譯 get 我的百度翻譯

為了便於使用,寫了乙個簡單但夠用的使用者介面,它長這個樣子 在左邊輸入英文按下回車後,右邊就會顯示翻譯結果了。這個東西只是單純的顯示翻譯結果,像音標 發音 中英文對照等功能都沒有,而且編輯不方便 如提供乙個 按鈕來清空 不過,其中的一些是api本身不支援 如文字轉語音 另外的如加音標 方便操作的功能...

尋找百度翻譯引數,實現百度翻譯

author runsen 首先要分析瀏覽器是怎麼傳送請求的。構造請求 找到關鍵請求之後,就要分析請求,然後去構造請求。分析請求有一下幾個要素,url,請求方法,請求頭,請求引數。請求引數有七個,可以通過反覆請求然後比較的方法得出from,to是表示翻譯語言的,transtype,means fla...

百度翻譯介面

public class translateacy extends activity implements onclicklistener public void initview private handler inshandler new handler 翻譯 private void tran...