

Hash functions and block ciphers - cgs1019
http://burtleburtle.net/bob/hash/

======
tptacek
I like a lot of what Bob Jenkins writes, and I think(?) I may still be using
his hash table library as my hash_t in my C code, but I still wouldn't use
anything he designed in place of SHA256 or AES; so, just that word of caution.

~~~
wladimir
That's appropriate, because hashing for hash tables has entirely different
requirements than cryptographic hashing.

For a hash table you want a function that evaluates really fast, is short, but
produces as little collisions as possible given that constraint.

A cryptographic hash can be slower and have more steps, but it should be
extremely hard to find a plaintext with a pre-defined hash value, or produce
collisions, or one of the many other threat scenarios.

------
brugidou
i think it's worth pointing out the new murmurhash 3 for lookup table hashing,
it has gone a long way and is supposed to be _really_ fast:
<http://code.google.com/p/smhasher/>

The author of murmurhash actually based their work on Bob Jenkin's trying to
make it speedier, and developed a nice hash test suite.

------
bajsejohannes
> Also, % can be extremely slow (230 times slower than addition on a Sparc).

This is surprising. For comparison, I did a test on my Intel Core 2 Duo.
Modulo turned out to be about 8.5 times slower than addition. A lot better
than Sparc, but it might still be to slow for certain applications.

------
chanux
Doesn't load for me.

Google cache here :
[http://webcache.googleusercontent.com/search?client=ubuntu&#...</a>

