Datorprogrammerare har använt hashfunktioner i årtionden. Dessa funktioner används vanligtvis inom områdena säkerhet, dataåtkomst eller datavalidering. En hashalgoritm är en matematisk funktion som omvandlar en sträng av tecken med variabel längd till ett fast numeriskt värde. Det finns flera typer av algoritmer tillgängliga idag. Varje typ är designad för ett specifikt ändamål.
En hashfunktion är en matematisk funktion som skapar ett hashvärde från en uppsättning teckensträngar. När man skapar en hashfunktion är det viktigt att skydda sig mot hashkollisioner. Tyvärr kan en hashalgoritm skapa samma hashvärde med en annan uppsättning teckendata. Detta kommer att orsaka en kollision eftersom två uppsättningar data kommer att ha samma hash-nyckel.
Datakryptering är en av de primära skydden mot inkräktare och skadliga aktiviteter. Vetenskapen om datakryptering är känd som kryptografi. En hashalgoritm är datorfunktionen som omvandlar standarddata till ett krypterat format. Det finns många säkerhetstyper av hashalgoritmer tillgängliga idag. Varje funktion har olika komplexitetsnivå för säkerhetsändamål.
Tekniken att hash skapades först som en metod för att förbättra prestanda i datorsystem. Ett hashvärde är en numerisk representation av datatecken. Numeriska data har snabbare bearbetningsegenskaper när man söker igenom datafiler. Många kommersiella databaser använder hashfiler som en metod för att indexera data inom databashanteringssystemet (DBMS).
Processen med hashning har också använts som en metod för att skydda känslig datordata. Hashed data kräver ett krypteringsprogram för att konvertera hashdata tillbaka till ett format som kan förstås av mänsklig tolkning. Det är nästan omöjligt att dechiffrera en krypterad datafil utan den ursprungliga hashalgoritmen.
En avancerad hashalgoritm kräver speciella nycklar som används för kryptering och dechiffrering av data. Dessa nycklar är den hemliga ingrediensen för att göra kryptering komplex. Krypteringsnyckeln kan variera från 64 bitar till 256 bitar. När storleken på bitarna ökar blir komplexiteten i hashalgoritmen svårare att bryta.
Kryptografi och hashalgoritmer hanteras av National Institute of Standards and Technology (NIST). Denna grupp hanterar standarderna för krypteringsfunktioner för användning i USA:s regering. För närvarande är den definierade standarden den avancerade krypteringsstandarden (AES), som kräver en 256-bitars nyckel.