any function that can be map data and store data to a hash table.

The hash functions helps the keys to organize the data in the hashes or buckets(It is called different names for different languages). A good hash functions will be Organize to minimize the data in the hash, avoid collisions and use of data storage to a minimum also maximize the speed to make it a Constant time which is the fastest possibility to get result from any actions you need from a hash table. Last but not the Deterministic.