Python 爬蟲進(jìn)階必備 | 手撕 jsvmp 之某乎請(qǐng)求頭簽名算法分析
前言
之前寫過(guò)關(guān)于某乎的文章,是通過(guò)補(bǔ)環(huán)境完成的感興趣的可以看看下面的文章
Python 爬蟲進(jìn)階必備 | 某著名人均百萬(wàn)問(wèn)答社區(qū) header 參數(shù)加密邏輯分析
今天推薦一下小小白大佬寫的關(guān)于這個(gè)網(wǎng)站的算法分析文章,xdm 可以卷起來(lái)了
網(wǎng)站
aHR0cHM6Ly93d3cuemhpaHUuY29tL3NlYXJjaD90eXBlPWNvbnRlbnQmcT1weXRob24=
加密定位
需要分析的接口以及加密參數(shù)?x-zse-96?如下圖

直接搜關(guān)鍵字?x-zse-96,發(fā)現(xiàn)一個(gè)文件,點(diǎn)進(jìn)去

格式化后再搜索x-zse-96,發(fā)現(xiàn)兩個(gè)可疑入口,分別是這兩個(gè)


重新刷新網(wǎng)站,可以看到斷點(diǎn)斷在下圖這個(gè)地方,選中執(zhí)行函數(shù)可以發(fā)現(xiàn)加密入口就是這里

加密分析
s 明文數(shù)據(jù):
s?=?'101_3_2.0+'(版本號(hào))?+????'/api/v4/search_v3?t=general&q=python&correction=1&offset=0&limit=20&filter_fields=&lc_idx=0&show_all_topics=0&search_source=Normal+'(接口后綴)?+????'"AIAf1GdgbRSPTtoYPsJrpvRp_MB-_8SxwGQ=|1643717522"'(dc0 cookie)
第一層加密
?l()(s) = '7dd6414484df2c210ddbb996c55cf64c' -> md5_str
a()(md5_str) = 'a0xqSQe8cLYfSHYyThxBHD90k0xxN9xqf_tqr6UqH9Op'

"索引:",?this.C,?"?值:", JSON.stringify(this, function(key, value) {if (value == window) {return undefined} return value})
fix_str = "RuPtXwxpThIZ0qyz_9fYLCOV8B1mMGKs7UnFHgN3iDaWAJE-Qrk2ecSo6bjd4vl5"

3433258 >> 18 = 13

1.?25386?+ 3407872 =?34332582.?25386?^?3407872?=?34332583.?25386?|?3407872?=?3433258


最后驗(yàn)證:


可以發(fā)現(xiàn),算法還原下來(lái)只有短短的50幾行,而且最后本地生成的加密參數(shù)跟瀏覽器生成的完全一致,完結(jié)撒花


好了,以上就是今天的全部?jī)?nèi)容了。
我是沒(méi)有更新就在摸魚的咸魚
收到請(qǐng)回復(fù)~
我們下次再見(jiàn)。
對(duì)了,看完記得一鍵四連,這個(gè)對(duì)我真的很重要。
評(píng)論
圖片
表情
