_signature、 __ac_nonce、 __ac_signature參數(shù)
開始水
接口中有參數(shù) _signature 參數(shù)

直接全局搜索這個參數(shù),會在一個 index-*.js 中搜索到, 雖然 captcha.js 中也有,不過沒用

在文件中找到該字符串位置,打斷點,調(diào)試。

繼續(xù)下一步,調(diào)試會跳轉(zhuǎn)到 acrawler.js 文件中.

acrawler.js 文件

下一步直接將 js 文件拿出來, 執(zhí)行。

1、簡化 js, 刪除一些沒有用的東西

參數(shù)后改為空列表即可
2、node 中 window 為 global

定義
var?window?=?global;
繼續(xù)執(zhí)行,缺啥補啥(調(diào)試打印 Z[S],就可以知道缺啥了 )


window.location?=?params.location;
window.navigator?=?params.navigator;
然后就可以出來短的了

有個問題加了下面的代碼就會報錯
window.byted_acrawler?&&?window.byted_acrawler.init({
????????????????aid:?24,
????????????????dfp:?!0
????????????});

注釋掉就可以,不知道啥原因。
長的 _signature 需要加 cookie,把 cookie 放進(jìn)去就 ok 了。放在主要加密函數(shù)的后面,放在前面沒用。不生效

結(jié)果:

測試一下

請求 api/pc/feed 接口時,需要在前面加上 toutiao 進(jìn)行加密。
cookie 中的 __ac_nonce __ac_signature
直接請求詳情,不攜帶 cookie, 會響應(yīng) cookie ?__ac_nonce


通過 __ac_nonce 生成 __ac_signature
直接調(diào)用上面的方法即可
function?f2(__ac_nonce){
????ac_signature?=?window.byted_acrawler.sign("",?__ac_nonce);
????return?ac_signature
}

評論
圖片
表情
