Hashfunktion

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

En hashfunktion a) ä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. De värden som funktionen ger upphov till kan kallas 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 nära lika objekt i en datafil, att hitta DNA-sekvenser som liknar varandra o s v.

Hashfunktioner är nära besläktade med kontrollsummor, fingeravtryck för data, pseudoslumptalsgeneratorer och kryptografiska hashfunktioner. Dessa områden överlappar varandra delvis, men alla har sina egna användningsområden och krav.
–––––––––––––––
a) Engelska ordet hash betyder hacka sönder, ställa till oreda.

Kryptografiska hash-funktioner[redigera | redigera wikitext]

Kryptografiska hash-funktioner är hash-funktioner gjorts på ett sådant vis att det ska vara mycket svårt att finna vilket ingångs-värde (visaren) 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 önskar att användarnas lösenord inte syns i klartext, om databasen skulle bli stulen. Ett annat användningsområde är att säkerställa att en fil eller ett meddelande inte ändrats 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.