关于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;
});
})();
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))
人工顶贴啊
页:
[1]