En hash-algoritm, även känd som en hash-funktion, är en matematisk procedur som används i datorprogrammering för att förvandla en stor del av data till en mindre representationssymbol, känd som en hash-nyckel. Den största användningen av hashalgoritmer förekommer i stora databaser med information. Varje samling av data tilldelas en hash-nyckel, som är en kort symbol eller kod som representerar den. När en användare behöver hitta den databiten matar han in symbolen eller koden och datorn visar hela databiten.
För att hash, som denna process kallas, för att fungera behöver den en hashfunktion eller hashalgoritm. Detta talar om för datorn hur man tar hash-nyckeln och matchar den med en uppsättning data som den representerar. Områden i datorprogrammet som kallas slots eller hinkar lagrar information och varje nyckel länkar till en specifik plats eller hink.
För att förstå en hashalgoritm fullt ut är det bäst att föreställa sig ett datorprogram som fungerar ungefär som en ordbok. Varje bokstav i alfabetet representerar en hash-nyckel. Sidorna som innehåller alla ord som börjar med en viss bokstav räknas som en plats eller hink. Om en person sökte efter en lista med ord som börjar med bokstaven A, kunde han skriva bokstaven A, som representerar en nyckel, i datorn och hash-algoritmen skulle söka efter den plats som matchar den specifika nyckeln.
Det skulle sedan hämta alla bitar av data i den luckan. I det här fallet skulle det returnera alla ord som började med bokstaven A. Detta exempel visar en förenklad version av hur en hashalgoritm fungerar. Det kan också länka en hash-nyckel till en specifik databit och bara den databiten skulle visas istället för flera bitar.
Hela processen finns i en hashtabell eller hashkarta. Denna tabell registrerar data och de matchande nycklar som motsvarar dem. Den använder sedan en hash-algoritm för att koppla en nyckel till en databit när användaren begär det. En forskare som försöker jämföra liknande inspelningar från sina experiment kan skapa en hashalgoritm som tilldelar en nyckel till all data som är liknande. Det skulle sedan visa honom alla liknande data på en gång för honom att jämföra.