Hashfunktion

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
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 även de stora skillnader i slutvärde även när inputvärderna är väldigt lika (i det här fallet är det ett enda ord i en längre mening som bytts 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 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.


Se även

Referenser

  1. Svenska datatermgruppen, frågor och svar, lista, version 27. Fråga 168


Personliga verktyg