En hash er en streng med fast lengde (digest) generert fra inndata av en hvilken som helst størrelse ved hjelp av en hash-funksjon. Prosessen er enveis – du kan ikke dekryptere eller reversere en hash for å få de opprinnelige dataene. Derfor er «hash-kryptering» en feilaktig betegnelse; Hashing er ikke kryptering.
Populære hash-algoritmer inkluderer:
MD5 (foreldet for sikkerhetsbruk)
SHA-1 (utdatert)
SHA-256, SHA-512 (del av SHA-2-familien)
SHA-3
bcrypt, scrypt, Argon2 (for sikker passord-hashing)
Hashing tjener flere formål i cybersikkerhet og dataintegritet. Viktige grunner til å bruke hashing inkluderer:
Dataintegritet: Sikrer at data ikke har blitt endret (f.eks. filkontrollsummer).
Passordlagring: Lagrer passord sikkert ved å sammenligne hasher i stedet for å lagre faktiske passord.
Digitale signaturer: Hasher signeres i stedet for store dokumenter.
Effektivitet: Små hashverdier med fast størrelse er raskere å sammenligne enn store datablokker.
Fordi hasher er deterministiske og raske, er de ideelle for verifiseringsoppgaver.
Bruke en hashfunksjon innebærer:
Skrive inn data (f.eks. en fil, streng eller passord).
Behandle dataene med en hashing-algoritme.
Hente et digest, som er en streng med fast størrelse som unikt representerer inputen.
For passordbeskyttelse:
Kombiner passordet med et salt (tilfeldige data).
Bruk en sikker hash-funksjon (f.eks. bcrypt eller Argon2).
Lagre den resulterende hashen og saltet sikkert.
Siden hasher ikke kan omvendt, bekrefter du inndata (som et passord) ved å hashe det på nytt og sammenligne den nye hashen med den lagrede.
Hashing bør brukes når:
Dataintegriteten må bekreftes (f.eks. sjekke for korrupsjon eller manipulering).
Passord må lagres sikkert (ikke kryptert eller i ren tekst).
Digitale signaturer og sertifikater er involvert (hashing sikrer dokumentautentisitet).
Rask datasammenligning er nødvendig (f.eks. i hashtabeller eller hurtigbuffer).
Hashing er ikke egnet når du trenger å gjenopprette originaldata senere – det er det kryptering er til for.