Eine Hash Funktion ist eine nicht umkehrbare Funktion die eine umfangreiche Quellmenge (idR Texte) auf eine wesentlich kleinere Zielmenge (Hashwerte, idR Natürliche Zahlen) abbildet. Der Hashwert kann zum Auffinden von Daten in einer Datenbank oder zum digitalen Signieren eines Dokumentes verwendet werden.
Eine gute Hash Funktion sollte die folgenden Eigenschaften aufweisen:
Zufälligkeit
Ähnliche Quellelemente sollen zu völlig verschiedenen Hashwerten führen.
Eindeutigkeit
Die Funktion muss eindeutig von der Quellmenge auf die Zielmenge abbilden. Wiederholtes Berechnen des Hashwertes desselben Quellelements muss dasselbe Ergebnis liefern.
Kollisionsfreiheit
Es darf nicht effizient möglich sein zwei Quellelemente mit demselben Hashwert zu finden.
Nicht Umkehrbar
Zu der Funktion gibt es keine inverse Funktion mit der es möglich wäre ein passendes Quellelement zu finden.
Effizienz
Die Funktion muss schnell berechenbar sein