Hashfunctie
Een hashfunctie is een functie in de informatica die invoer uit een breed domein van waarden omzet in een (meestal) kleiner bereik, meestal een deelverzameling van de gehele getallen. Het woord hash komt uit het Engels en betekent hier hakken.
Hashfuncties worden gebruikt in hashtabellen, cryptografie en dataverwerking. Een goede hashfunctie is er een die weinig botsingen veroorzaakt in het domein waarmee ze werkt, dit wil zeggen dat er weinig kans is dat twee verschillende invoerwaarden dezelfde uitvoer geven.
Formeel betekent dit dat een hashfunctie H de eigenschap heeft dat uit H(x) = H(y) zeer waarschijnlijk volgt dat x = y.
Een typische toepassing is het versleutelen van wachtwoorden. In de plaats van het wachtwoord door te geven (bijvoorbeeld via een netwerk), geeft men de versleutelde hashwaarde van het wachtwoord door. Als de doorgegeven waarde dezelfde is als de hashwaarde van het originele wachtwoord, dan is hoogstwaarschijnlijk het wachtwoord juist. Een bijkomende vereiste is hier dat men uit de hashwaarde zeer moeilijk de oorspronkelijke waarde zou moeten kunnen vinden.