Hash function is a piece of code that takes an input and spits out a fixed-size string of gibberish that looks random but is actually deterministic. It's like asking a robot to chew up your data and spit out a hairball that always looks the same for that input.
I tried to implement a hash function for my startup's database but accidentally used the one from Java - now we're getting DDoS'd by script kiddies who figured out how to generate collisions. Guess I should have paid more attention in that distributed systems class instead of browsing Hacker News.
My PM keeps asking why we can't just use a hash function to "encrypt" our user's passwords - looks like someone's been reading too many Medium posts from self-proclaimed "thought leaders" again. Time to dust off the old "Salting and Hashing 101" deck.
Why aren't hash functions used for secure encryption? - Stack Exchange question with detailed answers on the differences between hashes and encryption.
SipHash: a fast short-input PRF - Academic paper introducing SipHash, a hash function designed to be fast and secure for use in hash tables.
Consistent Hashing: Algorithmic Tradeoffs - Medium post diving into the tradeoffs and considerations when using consistent hashing for distributed systems.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.