Hashfunktion
Från Rilpedia
En hashfunktion är en algoritm eller matematisk funktion som gör om någon sorts data till ett relativt litet heltal som kan fungera som index till en array. Värderna som returneras av funktionen kan kallas för hashsumma, hashvärde och kondensat.[1].
Hashfunktioner används oftast för att öka hastigheten för uppslagning av värden i tabeller eller för att jämföra dataobjekt. Exempel på detta är att hitta värden i en databas, att hitta dubbletter eller väldigt lika objekt i en datafil, att hitta DNA-sekvenser som liknar varandra osv.
Hashfunktioner är nära besläktade med kontrollsummor, fingeravtryck för data, pseudoslumptalsgeneratorer och kryptografiska hash-funktioner. Dessa områden överlappar till en gräns, men alla har sina egna användningsområden och krav.
Kryptografiska hash-funktioner
Kryptografiska hash-funktioner är hash-funktioner designade på ett sådant vis att det ska vara mycket svårt att finna vilket input-värde som gett upphov till en viss hash. Hashen måste vara lång för att hindra Brute force attacker, så vanligtvis används 128 bitar eller mer. Kryptografiska hashfunktioner kommer väl till pass i exempelvis lösenordsdatabaser, då man inte önskar att användarnas lösenord syns i klartext utifall databasen skulle bli stulen. Ett annat användningsområde är att säkerställa att en fil eller ett meddelande inte redigerats av en illvillig tredje part vid överföringen. Exempel på kryptografiska hash-funktioner som år 2009 anses som relativt säkra är MD5 och SHA-1, om mycket stark säkerhet önskas är SHA-512 ett alternativ.