Hashing — sådan "fingeraftrykkes" data
Kryptering handler om at gøre data ulæselige, men stadig muligt at gøre læselige igen med den rette nøgle. Hashing løser et andet problem: at skabe et kort, unikt "fingeraftryk" af en given mængde data — et fingeraftryk, der er umuligt at regne den oprindelige data ud fra igen.
En envejsfunktion
En hash-funktion tager en vilkårlig mængde data — en enkelt sætning eller en hel film — og omdanner den til en kort tegnstreng af fast længde, kaldet en hash-værdi eller et hash. Processen går kun én vej: det er beregningsmæssigt umuligt at gå fra hash-værdien tilbage til de oprindelige data. Det er netop pointen, modsat kryptering, hvor målet er, at man med den rette nøgle kan gå begge veje.
Selv den mindste ændring giver et helt nyt fingeraftryk
En god hash-funktion er designet sådan, at selv en ekstremt lille ændring i inputtet — for eksempel ét enkelt bogstav i en tekst — giver en fuldstændig anderledes hash-værdi. Den egenskab gør hashing velegnet til at tjekke, om data er blevet ændret undervejs, uden at man behøver at sammenligne hele den oprindelige fil: man sammenligner blot de to korte hash-værdier.
Fra downloadede filer til lange adgangskoder
Hashing bruges til langt flere ting end kryptovaluta, som nævnt tidligere i denne pakke. Når en hjemmeside opgiver en hash-værdi ved siden af en fil, du kan downloade, kan du selv beregne hashen af din downloadede fil og sammenligne, for at tjekke, at filen ikke er blevet beskadiget eller ændret undervejs. Og når en tjeneste gemmer din adgangskode, gemmer den i praksis sjældent selve adgangskoden — kun en hash af den, sådan at selv tjenesten ikke kan se din faktiske adgangskode, kun tjekke, om en indtastet adgangskode giver samme hash som den gemte.
Den vigtigste pointe
Hashing er kryptografiens svar på et fingeraftryk: et kort, unikt kendetegn for en større mængde data, som gør det muligt at opdage ændringer og bekræfte identitet, uden at afsløre selve dataene. Den samme idé om et pålideligt fingeraftryk er et af byggestenene bag den kryptering, der beskytter din forbindelse, hver gang du besøger en hjemmeside med https foran adressen.