26–28 October 2015
Amsterdam, The Netherlands

5* non-cryptographic hash functions enter. One hash function leaves.

Adam Harvey (New Relic)
13:45–14:25 Monday, 26/10/2015
Foundations
Location: G 104/105
Average rating: ****.
(4.00, 3 ratings)
Slides:   external link

When you say “hash function” in a room full of developers, people tend to think of the classics: MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-OHGODPLEASESTOP, and the like — cryptographic hash functions intended for cryptographic uses.

There’s another world out there, though: non-cryptographic hashes. Sometimes you just need to figure out if you’ve already seen a string or structure. Sometimes you need a basic checksum. Sometimes you need a hash that’s just fast and can fit into a 32 bit integer.

I’ll run through the state of the art in the world of non-cryptographic hashing — what your best options are, how they compare in terms of CPU and memory usage, and how they work. Who takes it? Whose mixing function reigns supreme?

Let’s find out.

  • I’m saying “5,” but realistically I’m going to cover as many modern options as I can fit into the time available. Let’s say “5 plus or minus 2” in reality.
Photo of Adam Harvey

Adam Harvey

New Relic

Adam Harvey is a software developer working on PHP, Go, and C language support at New Relic. Adam has worked on a number of interesting and occasionally even useful things in his two-decade career, including prototyping the worst mesh network of all time (based on Android phones), discovering how to reliably lock up a Windows computer by writing an in-browser video editor, and (most usefully) removing the original mysql_* API from PHP. In his spare time, he contributes to a variety of open source projects, a secret robot project that may have some Asimov-related issues, and a variety of half-finished websites and is attempting to drink every beer Vancouver produces.