标签:
查阅了一下C#关于QQ GTK方面的资料、然而并没有找到什么相关性的代码
好吧,那只有自己写一份 不过GTK方面算法以前的时候Downloader过一下
虽然是E语言的、不过不打紧 一般GTK主要应用于登陆QQ空间 留言板 那一
块、不过在本代码中包含TXMD5加密部分 TXMD5搞登陆验证其实也还可以
// bkn, gtk, ldw
public static string GetAntiCSRFToken(byte[] skey,
int uType = 0 // 1-md5,0-int
)
{
int salt = 5381;
string token = string.Empty;
if (uType == 1)
{
string hash = (salt << 5).ToString();
string md5key = "tencentQQVIP123443safde&!%^%1282";
for (int i = 0; i < skey.Length; i++)
{
int asc = (sbyte)skey[i];
hash += ((salt << 5) + asc);
salt = asc;
}
token = GetDataSummary(Encoding.Default.GetBytes(hash += md5key));
}
else
{
for (int i = 0; i < skey.Length; i++)
salt += (salt << 5) + (sbyte)skey[i];
token = (salt & 2147483647).ToString();
}
return token;
}
上面是GTK && MD5加密的部分、若 uType = 1
返回的是MD5加密文本、否则是GTK加密后的文本、
public static string GetDataSummary(byte[] buf)
{
string str = string.Empty;
using (MD5 md5 = MD5.Create())
{
buf = md5.ComputeHash(buf);
for (int i = 0; i < buf.Length; i++)
str += buf[i].ToString("x");
}
return str;
}
GetDataSummary 取数据摘要 可以理解为取MD5的文本啦、
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u012395622/article/details/47274131