View Single Post
 09-15-2004, 08:58 AM #182 Jelko Nameless Being Hm I tried to implement Tarakan's and Alex's code, but somehow the resulting checksum is not right: Code: ```>1); \$a &= (~\$z); \$a |= 0x40000000; \$a = (\$a>>(\$b-1)); } else { \$a = (\$a>>\$b); } return \$a; } function mix(\$a,\$b,\$c) { \$a -= \$b; \$a -= \$c; \$a ^= (zeroFill(\$c,13)); \$b -= \$c; \$b -= \$a; \$b ^= (\$a<<8); \$c -= \$a; \$c -= \$b; \$c ^= (zeroFill(\$b,13)); \$a -= \$b; \$a -= \$c; \$a ^= (zeroFill(\$c,12)); \$b -= \$c; \$b -= \$a; \$b ^= (\$a<<16); \$c -= \$a; \$c -= \$b; \$c ^= (zeroFill(\$b,5)); \$a -= \$b; \$a -= \$c; \$a ^= (zeroFill(\$c,3)); \$b -= \$c; \$b -= \$a; \$b ^= (\$a<<10); \$c -= \$a; \$c -= \$b; \$c ^= (zeroFill(\$b,15)); return array(\$a,\$b,\$c); } function GoogleCH(\$url, \$length=null, \$init=GOOGLE_MAGIC) { if(is_null(\$length)) { \$length = sizeof(\$url); } \$a = \$b = 0x9E3779B9; \$c = \$init; \$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)); \$mix = mix(\$a,\$b,\$c); \$a = \$mix[0]; \$b = \$mix[1]; \$c = \$mix[2]; \$k += 12; \$len -= 12; } \$c += \$length; switch(\$len) /* all the case statements fall through */ { case 11: \$c+=(\$url[\$k+10]<<24); case 10: \$c+=(\$url[\$k+9]<<16); case 9 : \$c+=(\$url[\$k+8]<<8); /* the first byte of c is reserved for the length */ case 8 : \$b+=(\$url[\$k+7]<<24); case 7 : \$b+=(\$url[\$k+6]<<16); case 6 : \$b+=(\$url[\$k+5]<<8); case 5 : \$b+=(\$url[\$k+4]); case 4 : \$a+=(\$url[\$k+3]<<24); case 3 : \$a+=(\$url[\$k+2]<<16); case 2 : \$a+=(\$url[\$k+1]<<8); case 1 : \$a+=(\$url[\$k+0]); /* case 0: nothing left to add */ } \$mix = mix(\$a,\$b,\$c); /*-------------------------------------------- report the result */ return \$mix[2]; } //converts a string into an array of integers containing the numeric value of the char function strord(\$string) { for(\$i=0;\$i=2.0.114:\t6%u\n",\$ch); ?>``` Any idea what is still wrong?
 Enthusiast