Hva er en Hash-algoritme?
En hash-algoritme, også kjent som en hash-funksjon, er en matematisk prosedyre som brukes i dataprogrammering for å gjøre en stor del av data om til et mindre representasjonssymbol, kjent som en hash-nøkkel. Den viktigste bruken av hasjalgoritmer forekommer i store databaser med informasjon. Hver samling av data tildeles en hasjnøkkel, som er et kort symbol eller kode som representerer den. Når en bruker trenger å finne det stykke data, skriver han inn symbolet eller koden, og datamaskinen viser hele datastykket.
For hashing, som denne prosessen kalles, for å fungere, trenger den en hasjfunksjon eller hasjalgoritme. Dette forteller datamaskinen hvordan du tar hasjnøkkelen og matcher den med et sett med data den representerer. Områder i dataprogrammet kjent som spor eller bøtter lagrer informasjon, og hver nøkkel lenker til en bestemt spalte eller bøtte.
For å forstå en hasjalgoritme fullt ut er det best å forestille seg et dataprogram som fungerer noe som en ordbok. Hver bokstav i alfabetet representerer en hasjtast. Sidene som inneholder alle ordene som begynner med en viss bokstav, teller som et spor eller en bøtte. Hvis en person lette etter en liste over ord som begynner med bokstaven A, kunne han skrive bokstaven A, som representerer en nøkkel, inn i datamaskinen, og hash-algoritmen ville søke etter sporet som samsvarer med den spesifikke nøkkelen.
Den vil deretter hente alle dataene i det sporet. I dette tilfellet vil det returnere alle ordene som startet med bokstaven A. Dette eksemplet viser en forenklet versjon av hvordan en hash-algoritme fungerer. Det kan også knytte en hasjnøkkel til et bestemt stykke data, og bare det stykke data vil vises i stedet for flere stykker.
Hele prosessen inngår i et hasjbord eller hasjkart. Denne tabellen registrerer data og samsvarende nøkler som tilsvarer dem. Den bruker deretter en hashalgoritme for å koble en nøkkel til et stykke data når brukeren ber om det. En forsker som prøver å sammenligne lignende opptak fra eksperimentene, kan lage en hash-algoritme som tildeler en nøkkel til alle lignende data. Det ville da vise ham alle de samme dataene samtidig som han kan sammenligne.