g_tk算法详解
g_tk是騰訊在QQ空間這一領域使用的密文(其他的地方我沒遇到g_tk),有寫數據包或者url參數中需要加入你計算出的g_tk才能成功!但是也有例外,也有些地方不需要g_tk也一樣成功,為了程序的嚴謹,建議大家要計算g_tk的值。
g_tk是根據從cookie中獲取skey的值加密得到的。
其實g_tk是這樣獲取的:g_tk=getGTK(skey)
所以想計算g_tk必須先獲取skey,并且有g_tk算法getGTK函數。
微軟給我們提供了獲取cookie的API函數,我們直接調用就很方便的獲取cookie
'這樣就從cookie中將skey的值提取出來了
以前在js文件中找到了g_tk算法函數,如下:
后來我用VB中的可以執行腳本語言的ScriptControl控件執行它,獲得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")'調用getGTK函數,參數為123,返回g_tk值是193432059
不懂javascript的朋友可能看不懂騰訊的代碼,當我寫完這個函數,大家就明白具體怎么回事了,很好理解。
大家要支持易我論壇啊,我以后在慢慢細談我的經驗,我掛科了,有點小郁悶,哎,但是一點也不影響我研究。
總結
- 上一篇: 形近词
- 下一篇: 【微信小程序】页面上拉触底事件的处理函数