Hashfunktion

Från Wikipedia
Hoppa till: navigering, sök
En typisk hashfunktion i arbete. Varje värde förvandlas till ett mindre heltal som vi kan använda som index i en tabell. Denna bild visar de stora skillnaderna i slutvärde även när inputvärdena är väldigt lika (i det här fallet är det ett enda ord i en längre mening som byts ut).

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 hashfunktioner. Dessa områden överlappar till en gräns, men alla har sina egna användningsområden och krav.

Kryptografiska hash-funktioner[redigera | redigera wikitext]

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 RIPEMD-160 och SHA-1, om mycket stark säkerhet önskas är SHA-512 ett alternativ.

MD5 ansågs tidigare säkert men har visat sig ha dålig kollisionsresistans.

Se även[redigera | redigera wikitext]

Referenser[redigera | redigera wikitext]

  1. ^ ”Svenska datatermgruppen, frågor och svar, lista, version 27. Fråga 168”. http://www.nada.kth.se/dataterm/fos-lista.html.