Allgemein: Für alle Elemente einer Menge von Argumenten existiert ein Funktionswert, dessen Informationsgehalt geringer ist, als der seines Argumentes. Eine Funktion, die eine solche Abbildung leistet, ist eine Hashfunktion.
In der Informatik: Eine Hashfunktion ist eine Funktion, die binären Werten aus einer Menge beliebig langer Binärwerte (Argumente) binäre Werte aus einer Menge von Binärwerten mit bestimmter Länge zuordnet (Hashwerte).
Hashfunktionen wurden in der Informatik für schnelle Sortier- und Suchverfahren eingeführt. Die Geschwindigkeitssteigerung wurde durch die Komprimierung der Eingabedaten erreicht: Unterschiedliche Eingaben unterschiedlicher Länge erhalten gleiche Ausgabewerte (Hashwerte) gleicher Länge.
Die Kryptographie hat spezielle Hashfunktionen eingeführt - universelle Hashfunktionen und daraus abgeleitet die Einweg-Hashfunktionen. Die Spezialität solcher Einweg-Hashfunktionen, von der auch ihr Name abgeleitet ist, besteht darin, daß aus den Hashwerten nicht auf die Eingaben geschlossen werden kann.
Während es bei Such- bzw. Sortierverfahren unumgänglich ist, von den Hashwerten auf die Eingaben zu schließen, sollen Einweg-Hashfunktionen genau dies unmöglich machen. Zusätzlich sollen Einweg-Hashfunktionen noch kollisionsfrei sein, d.h. zwei unterschiedlichen, sinnvollen Eingaben soll auf keinen Fall derselbe Hashwert zugeordnet werden.
Wahrscheinlich wird fast jeder diese einfache Hashfunktion schon angewandt haben, in seinem persönlichen Adreßbuch. Der endlichen Menge der Buchstaben des Alphabets können unendlich viele Namen und Adressen zugeordnet werden. Die Suche nach einer Person wird dadurch beschleunigt, daß anhand des Anfangsbuchstaben des Namens feststeht, wo nach dieser Person zu suchen ist. Die Suche in allen notierten Namen würde einen wesentlich höheren Aufwand erfordern.