<script language="JavaScript" runat="server"> /* -- Checksum 算法ASP源代码 -- */ /* -- http://www.eliuzd.com/pr/ -- */ /* -- 挑战者工作组倾情奉献! 作者:刘志丹 -- */ /* -- 2006-3-20 Eliuzd.com E-mail:eliuzd@gmail.com -- */ /* -- 使用方法:checksum值 = GetPR("http://www.eliuzd.com") -- */ /* -- checksum值:Google Toolbar低于2.0.114版本 -- */ function GetPR(url) { url ="info:" + url; ch = GoogleCH(str_asc(url)); ch = "6" + ch return ch; } function str_asc(string) { result = new Array(); lin = string.length for(i=0;i<lin;i++) { result[i] = string.substring(i).charCodeAt(0); } return result; } function yiweitwo(a, b) { z = 0x80000000; if (z & a) { a = (a>>1); a &= (~z); a |= 0x40000000; a = (a>>(b-1)); } else { a = (a>>b); } return a; } function yiwei(a,b,c) { a -= b; a -= c; a ^= (yiweitwo(c,13)); b -= c; b -= a; b ^= (a<<8); c -= a; c -= b; c ^= (yiweitwo(b,13)); a -= b; a -= c; a ^= (yiweitwo(c,12)); b -= c; b -= a; b ^= (a<<16); c -= a; c -= b; c ^= (yiweitwo(b,5)); a -= b; a -= c; a ^= (yiweitwo(c,3)); b -= c; b -= a; b ^= (a<<10); c -= a; c -= b; c ^= (yiweitwo(b,15)); var myarray = new Array (a,b,c); return myarray; } function GoogleCH(url) { length = url.length; a = b = 0x9E3779B9; c = 0xE6359A60; k = 0; len = length; while(len >= 12) { a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24)); b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24)); c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24)); mid = yiwei(a,b,c); a = mid[0]; b = mid[1]; c = mid[2]; k += 12; len -= 12; } c += length; switch(len) { case 11: { c+=(url[k+10]<<24); c+=(url[k+9]<<16); c+=(url[k+8]<<8); b+=(url[k+7]<<24); b+=(url[k+6]<<16); b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 10: { c+=(url[k+9]<<16); c+=(url[k+8]<<8); b+=(url[k+7]<<24); b+=(url[k+6]<<16); b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 9 : { c+=(url[k+8]<<8); b+=(url[k+7]<<24); b+=(url[k+6]<<16); b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 8 : { b+=(url[k+7]<<24); b+=(url[k+6]<<16); b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 7 : { b+=(url[k+6]<<16); b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 6 : { b+=(url[k+5]<<8); b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 5 : { b+=(url[k+4]); a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 4 : { a+=(url[k+3]<<24); a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 3 : { a+=(url[k+2]<<16); a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 2 : { a+=(url[k+1]<<8); a+=(url[k+0]); break; } case 1 : { a+=(url[k+0]); break; } } mid = yiwei(a,b,c); return mid[2]; } </script>
(责任编辑:admin) |