您的足迹:首页 > 东拉西扯 >QQ空间GTK算法(php,js,java都有)

QQ空间GTK算法(php,js,java都有)

JAVA的。

package ly.util;  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.UnsupportedEncodingException;  
import java.security.MessageDigest;    
public class Security {  

public static String GetG_TK(String str){  
 int hash = 5381;  
 for(int i = 0, len = str.length(); i < len; ++i){  
 hash += (hash << 5) + (int)(char)str.charAt(i);  
 }  
 return (hash & 0x7fffffff)+"";  
 }  

}  

js的。

//QQ空间,发送请求时,需要带的g_tk  
function getGTK(str){  
 var hash = 5381;  
 for(var i = 0, len = str.length; i < len; ++i)  
 {  
 hash += (hash << 5) + str.charAt(i).charCodeAt();  
 }  
 return hash & 0x7fffffff;  
}  

alert(getGTK("@3VYHMMEZI"))  

php的。

//G_tk计算
function getGTK($skey){
$hash = 5381;
for($i=0;$i<strlen($skey);++$i){
$hash += ($hash << 5) + utf8_unicode($skey[$i]);
}
return $hash & 0x7fffffff;
}
function utf8_unicode($c) { 
switch(strlen($c)) { 
case 1: 
return ord($c); 
case 2: 
$n = (ord($c[0]) & 0x3f) << 6; 
$n += ord($c[1]) & 0x3f; 
return $n; 
case 3: 
$n = (ord($c[0]) & 0x1f) << 12; 
$n += (ord($c[1]) & 0x3f) << 6; 
$n += ord($c[2]) & 0x3f; 
return $n; 
case 4: 
$n = (ord($c[0]) & 0x0f) << 18; 
$n += (ord($c[1]) & 0x3f) << 12; 
$n += (ord($c[2]) & 0x3f) << 6; 
$n += ord($c[3]) & 0x3f; 
return $n; 
} 
}

本博客所有文章如无特别注明均为原创。作者:恶猫复制或转载请以超链接形式注明转自 恶猫的博客
原文地址《QQ空间GTK算法(php,js,java都有)

相关推荐

分享本文至:

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)

恶猫的博客 -记录自己日常,代码,美图,电影,音乐,新闻,只是个人博客而已

浙ICP备15011757号-4 网站地图 联系我