- tags
- Computer science

Hash functions map variable sized inputs to a finite set of outputs.

They need to have a range of properties such as:

- Determinism: The output of a hash function should be the same every time for each input.
- Universality: Two inputs should have a probability of getting the same hash as close to \(1/n\) as possible, where \(n\) is the size of the output set. This is the minimum number of collisions.

They are essentials to many computer science algorithms and applications in Cryptography, Data storage (hash tables and bloom filters), compression, proofs of work, file checksums, etc.