g_tk算法详解
g_tk是騰訊在QQ空間這一領(lǐng)域使用的密文(其他的地方我沒(méi)遇到g_tk),有寫(xiě)數(shù)據(jù)包或者url參數(shù)中需要加入你計(jì)算出的g_tk才能成功!但是也有例外,也有些地方不需要g_tk也一樣成功,為了程序的嚴(yán)謹(jǐn),建議大家要計(jì)算g_tk的值。
g_tk是根據(jù)從cookie中獲取skey的值加密得到的。
其實(shí)g_tk是這樣獲取的:g_tk=getGTK(skey)
所以想計(jì)算g_tk必須先獲取skey,并且有g(shù)_tk算法getGTK函數(shù)。
微軟給我們提供了獲取cookie的API函數(shù),我們直接調(diào)用就很方便的獲取cookie
'這樣就從cookie中將skey的值提取出來(lái)了
以前在js文件中找到了g_tk算法函數(shù),如下:
后來(lái)我用VB中的可以執(zhí)行腳本語(yǔ)言的ScriptControl控件執(zhí)行它,獲得g_tk的值:
?
ScriptControl1.Language = "Jscript"ScriptControl1.Timeout = -1 ScriptControl1.AddCode txtVarHexcase.Text Dim js(7) As String js(0) = "function getGTK(str){" & vbCrLf js(1) = "var hash = 5381;" & vbCrLf js(2) = "for(var i = 0, len = str.length; i < len; ++i){" & vbCrLf js(3) = " hash += (hash << 5) + str.charAt(i).charCodeAt();" & vbCrLf js(4) = "}" & vbCrLf js(5) = " return hash ;" & vbCrLf js(6) = "}" ScriptControl1.AddCode js(0) & js(1) & js(2) & js(3) & js(4) & js(5) & js(6) dim g_tk as string g_tk = ScriptControl1.Run("getGTK", "123")'調(diào)用getGTK函數(shù),參數(shù)為123,返回g_tk值是193432059
不懂javascript的朋友可能看不懂騰訊的代碼,當(dāng)我寫(xiě)完這個(gè)函數(shù),大家就明白具體怎么回事了,很好理解。
大家要支持易我論壇啊,我以后在慢慢細(xì)談我的經(jīng)驗(yàn),我掛科了,有點(diǎn)小郁悶,哎,但是一點(diǎn)也不影響我研究。
總結(jié)
- 上一篇: 形近词
- 下一篇: 【微信小程序】页面上拉触底事件的处理函数