g_tk参数是腾讯在web产物上常常利用的一个参数。该参数一般用于:QQ空间、伴侣网、QQ勾当等处所。
g_tk是由cookie中的skey生成,网上有js、java、c#等语言的算法,可是貌似没有果真php算法。
昨天在sina sae开拓一个应用,用到此参数,故改写了一下。此刻分享给各人
<?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; } }