大家帮忙把这个JS函数转换为DELPHI函数谢谢,路过的都看看啊。
getAntiCSRFToken:function()
{function _hash(str)
{var hash=5381;for(var i=0,len=str.length;i<len;++i)
{hash+=(hash<<5)+str.charCodeAt(i);}
return hash&0x7fffffff;}
return _hash(QSFL.cookie.get("skey"));}
g_tk=2146743845 skey=@lUUzMKDMG
g_tk=1754584735 skey=@uJgHkIP9o
begin
k:=5381;
a:=edit1.text;
for i:=0 to length(a)-1 do
begin
k := k+(k shl 5)+ord(a[i]);
memo1.Lines.Add(inttostr(k));
end;
end;
我写的delphi算不出正确值。。。下面的方法可以参考
因为我们在网页登录QQ的时候,腾讯都会通过cookies里的skey值来计算,用js来算。既然在运算的时候执行了js脚本,那么我们就可以在抓包中获得。那g_tk是通过什
么算法算出来的?其实很简单,当我们得到skey后,循环取单字符的二进制并取左值.累加之后就得到后面的g_tk值了,这听上去很复杂,不过算法不用我们自己写,我
们只需要执行在腾讯网页登录的时候所执行的那个js脚本就可以了
[解决办法]
你最后的那部return hash&0x7fffffff;怎么没有处理啊。
[解决办法]
k:=5381;
a:=edit1.text; // '@lUUzMKDMG'
for i:=1 to length(a) do
begin
k := k+(k shl 5)+ord(a[i]); ///
k:= k and #7FFFFFFF;
memo1.Lines.Add(inttostr(k));
end;
end;