QQ空间g_tk、bkn加密参数算法

本文介绍了QQ空间中用于数据包和URL参数的g_tk加密算法。通过分析浏览器抓包工具获取的QZONE.FrontPage.getACSRFToken()函数,可以得到p_skey,然后将p_skey的每个字符转换为二进制并取左值累加,从而计算出g_tk。同时提到了bkn加密算法的相关内容,来源于其他博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

g_tk是腾讯在QQ空间这一领域使用的密文,有写数据包或者url参数中需要加入你计算出的g_tk才能成功!

下面是通过浏览器抓包工具抓取

访问该js内容找出 QZONE.FrontPage.getACSRFToken() 函数

 

QZONE.FrontPage.getACSRFToken = function(url){
    url = QZFL.util.URI(url);
    var skey;
    if(url){
      if(url.host && url.host.indexOf(“qzone.qq.com”)> 0){
        skey = QZFL.cookie.get(“p_skey”);
      } else {
        if(url.host && url.host.indexOf(“qq.com”)> 0){
          skey = QZFL.cookie.get(“skey”);
        }}
      }}
    }}
    if(!skey){
      尝试{
        skey = parent.QZFL.cookie.get(“p_skey”)|| “”;
      } catch(err){
        skey = QZFL.cookie.get(“p_skey”)|| “”;
      }}
    }}
    if(!skey){
      skey = QZFL.cookie.get(“skey”)|| QZFL.cookie.get(“rv2”);
    }}
    var hash = 5381;
    forvar i = 0,len = skey.length; i <len; ++ i){
      hash + =(hash << 5)+ skey.charAt(i).charCodeAt();
    }}
    return hash&2147483647;
  };

得到p_skey后,循环取单字符的二进制并取左值.累加之后就得到后面的g_tk值了

 

转为C#代码

       string p_skey = pskey;
            long hash = 5381;
            for (int i = 0; i < p_skey.Length; i++)
            {
                hash += (hash << 5) + p_skey[i];
            }
            long g_tk = hash & 0x7fffffff;

 

bkn加密算法:

     public long GetBkn(string skey)
        {
            var hash = 5381;
            for (int i = 0, len = skey.Length; i < len; ++i)
            {
                hash += (hash << 5) + (int)skey[i];
            }
            return hash & 2147483647;
        }

 

转载于:https://www.cnblogs.com/a849788087/p/6440264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值