騰訊翻譯介面 破解
阿新 • • 發佈:2019-01-31
前面分別介紹了《有道翻譯介面 破解》《谷歌翻譯介面 破解》及《百度翻譯介面 破解》,下面來嘗試一下騰訊翻譯介面(Github地址,歡迎star)。
老規矩,上圖:
可得到 Request URL 和 Request Method,接著往下看:
根據上圖,我們知道未知的引數是 sessionUuid 。通過多次試驗,發現從結構上,是由字串“translate_uuid” + 隨機數 得到。經過之前對另外幾個介面的破解,我們大概可以猜測到這個隨機數跟時間有關係。
猜測歸猜測,動手驗證一下。經過關鍵字搜尋,我在 js 程式碼中發現了這個 uuid 的生成由來,如下:
將上述 js 程式碼格式化,然後再次搜尋關鍵字,得到:
明顯,這個 uuid 直接使用的系統時間,再次驗證了我們的想法。
剩下的就是進行程式碼實現了,如下:
public class Tencent {
public static void main(String[] args) throws Exception{
String from = "en";
String to = "zh";
String q = "Who are you?What do you want to do?";
Map<String, String> params = new HashMap<>();
params.put("source" , from);
params.put("target", to);
params.put("sourceText", q);
params.put("sessionUuid", "translate_uuid" + String.valueOf(System.currentTimeMillis()));
String url = "http://fanyi.qq.com/api/translate";
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost request = new HttpPost(url);
request.setEntity(new UrlEncodedFormEntity(util.convertParams(params), "UTF-8"));
request.setHeader("Cookie", "fy_guid=d4480e20-1644-4a47-a98d-787cfa244fd2;qtv=45db6800eff8077d;qtk=vwCc8qMPUDnXjoyGCPEOWs/VJlGgE/T9rZxCBZ91BvuJncfjxAfUsureuGWhZFnF8L15Hyh/zO4Ari0fz2gOo/AaSpJmdRvReb95XBFWn14m+fRcQfq/LGYQ34KWxbXxJpxDtJyO+LPG6SpryVf1kg==;");
request.setHeader("Origin", "http://fanyi.qq.com");
CloseableHttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "utf-8");
System.out.println(result);
EntityUtils.consume(entity);
response.getEntity().getContent().close();
response.close();
}
}
注意:需要設定 cookie,否則會出錯。