What benefits do they provide that are not provided by their secure “brethren”?
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.