1530787462 发表于 2016-2-16 00:10:20

关于qq g_tk

请问这个是g_tk算法吗?
如果是的话帮忙改一下
不是的话求真正的g_tk

getACSRFToken = function(url) {
url = QZFL.util.URI(url);
var skey;
if (url) if (url.host && url.host.indexOf("qzone.qq.com") > 0) try {
    skey = parent.QZFL.cookie.get("p_skey");
} catch(err) {
    skey = QZFL.cookie.get("p_skey");
} else if (url.host && url.host.indexOf("qq.com") > 0) skey = QZFL.cookie.get("skey");
if (!skey) skey = QZFL.cookie.get("p_skey") || (QZFL.cookie.get("skey") || (QZFL.cookie.get("rv2") || ""));
return arguments.callee._DJB(skey);
};
getACSRFToken._DJB = function(str) {
var hash = 5381;
for (var i = 0,
len = str.length; i < len; ++i) hash += (hash << 5) + str.charCodeAt(i);
return hash & 2147483647;
}; (function() {
var t = QZONE.FormSender;
if (t && t.pluginsPool) t.pluginsPool.formHandler.push(function(fm) {
    if (fm) if (!fm.g_tk) {
      var a = QZFL.string.trim(fm.action);
      a += (a.indexOf("?") > -1 ? "&": "?") + "g_tk=" + QZFL.pluginsDefine.getACSRFToken(a);
      fm.action = a;
    }
    return fm;
});
})();

揰掵佲 发表于 2016-2-16 03:08:46

function encryptSkey(a) {
      if (!a)
            return "";
      for (var b = 5381, c = 0, d = a.length; d > c; ++c)
            b += (b << 5) + a.charAt(c).charCodeAt();
      return 2147483647 & b;
    }

function getBkn(skey) {
   
            returnencryptSkey(skey || "");
   ;
    }

.版本 2

.子程序 bkn, 文本型
.局部变量 skey, 文本型
.局部变量 Js, 类_脚本组件

skey = 文本_取出中间文本 (g_cookies, “skey=”, “;”)
返回 (Js.执行JS函数 (#常量_bkn, “getBkn”, skey))

shiguangkeji 发表于 2016-5-6 21:47:57

人工顶贴啊
页: [1]
查看完整版本: 关于qq g_tk