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的朋友可能看不懂腾讯的代码,当我写完这个函数,大家就明白具体怎么回事了,很好理解。
大家要支持易我论坛啊,我以后在慢慢细谈我的经验,我挂科了,有点小郁闷,哎,但是一点也不影响我研究。
总结
- 上一篇: 形近词
- 下一篇: 【微信小程序】页面上拉触底事件的处理函数