martes, enero 12, 2010

Rotating hash

I implemented this hash function in php.


private function rotatingHash($key) {
$result = 0;
$n=strlen($key);
for($i=0;$i<$n;$i++) {
$result = ($result << 4) ^ ($result >> 28) ^ ord($key[$i]);
}

//We avoid getting negative results
return abs($result);
}


Aqui podeis leer sobre ella y otras muchas. Pero realmente no creo que os sea muy interesante...En su lugar podríais usar crc32() que es nativa y por lo tanto mucho más rápida.
Ya como curiosidad... si quereis usar md5, debereis hacer....


$unpack = unpack('S', md5($key, true));
return $unpack[1];


Pero es mas lenta que crc32.

1 comentario:

Unknown dijo...

¿Que utilidad tiene esto?
$unpack = unpack('S', md5($key, true));
return $unpack[1];

No lo entiendo, podrías explicarlo un poco.