Questioning the Criteria for Evaluating Non-Cryptographic Hash Functions
queue.acm.org
queue.acm.org
What benefits do they provide that are not provided by their secure “brethren”?
Except, as we quickly find out, attackers can often exploit a non-cryptographic hash to create a denial of service attack.
The problem is that if my hash function is really a performance bottleneck, I'm probably better off using a really shitty hash function that exploits some feature of the data being stored that is "good enough" but super fast. In that case, even a non-crypto hash function won't be fast enough.
Finally, hash tables result in "random-ish" memory access patterns. On a modern processor, random memory access is so horrifically slow that you may get superior performance by changing data structures to something with a much more linear access pattern and dumping the idea of hash tables altogether.