# Hvad SHA-256 egentlig er

> Cuadernos Lacre · Koncept · 19. maj 2026
> https://solo2.net/da/notesboeger/articulos/hvad-sha-256-egentlig-er.html

Et matematisk fingeraftryk, der fylder fireogtres tegn, og som ændrer sig fuldstændigt, hvis blot et enkelt komma i den originale tekst flyttes. Hvorfor vi kalder det et digitalt laksegl.

---

## Den enkle idé bag det tekniske navn

Forestil dig, at der findes en maskine med én sprække og én skærm. Gennem sprækken indfører du en tekst: et ord, en sætning, en hel roman. På skærmen vises øjeblikke senere en sekvens på præcis fireogtres tegn. Denne sekvens kalder vi for den professionelle læser et *hash* eller et *kryptografisk resumé*; for den almindelige læser kan vi foreløbig kalde det et matematisk fingeraftryk af teksten, ligesom et fingeraftryk er det for et menneske.

Hvis du indfører den samme tekst to gange, viser maskinen det samme fingeraftryk begge gange. Hvis du indfører en tekst, der er en lille smule anderledes —et enkelt flyttet komma, et stort bogstav der bliver lille— viser maskinen et fingeraftryk, der er fuldstændig anderledes end det første. Ikke lignende: anderledes. Disse to egenskaber sammen —determinisme og følsomhed— er den enkle idé. Alt andet ved SHA-256 er det maskineri, der får dem til at fungere godt.

Det er værd at sige fra starten, hvad maskinen ikke gør. Den krypterer ikke teksten. Den skjuler den ikke. Den gemmer den ikke. Maskinen ser på teksten, beregner fingeraftrykket og glemmer teksten. Fingeraftrykket gør det ikke muligt at rekonstruere den tekst, der dannede det; det gør det kun muligt, givet en kandidattekst, at kontrollere om den stemmer overens med originalen eller ej. Derfor siger vi, at det er et *envejsresumé*: man går dertil, man vender ikke tilbage.

## Et hash er ikke det samme som kryptering

Forvirringen er hyppig, og det er værd at rydde den af vejen: at kryptere og at hashe er forskellige operationer. Kryptering består i at transformere en tekst på en sådan måde, at kun indehaveren af nøglen kan føre den tilbage til sin oprindelige form. Hashering består i at producere et fingeraftryk af teksten, som den originale tekst aldrig kan genskabes fra, hverken med eller uden nøgle. Den første er reversibel af design; den anden er irreversibel af design.

Den praktiske konsekvens er vigtig. Når en applikation siger «vi gemmer din adgangskode krypteret», er der nogen, der har nøglen til at dekryptere den — applikationen selv, i hvert fald. Når en applikation siger «vi gemmer din adgangskode hashet», kan applikationen selv ikke læse den originale adgangskode, selvom den ville; den kan kun kontrollere, om det du skriver, producerer det samme fingeraftryk igen. Den anden model er, når den er udført korrekt, meget at foretrække frem for den første til lagring af adgangskoder. Senere skal vi se, hvorfor «udført korrekt» kræver noget mere end bare SHA-256.

## De fire egenskaber, der gør et kryptografisk hash nyttigt

En hashfunktion, der fortjener tillægsordet *kryptografisk*, opfylder fire egenskaber:

1. Determinisme. Det samme input producerer altid det samme fingeraftryk.
2. Lavineeffekt. En lille ændring i inputtet producerer et fuldstændig anderledes fingeraftryk, uden synlig lighed med det foregående.
3. Modstandsdygtighed mod inversion. Givet et fingeraftryk er det ikke beregningsmæssigt muligt at finde den tekst, der producerede det.
4. Modstandsdygtighed mod kollisioner. Det er ikke beregningsmæssigt muligt at finde to forskellige tekster, der producerer det samme fingeraftryk.

«Ikke beregningsmæssigt muligt» betyder ikke «matematisk umuligt». Det betyder, at omkostningerne i tid, energi og penge for at opnå det overstiger summen af al rimeligt tilgængelig beregningskapacitet med mange størrelsesordener. For SHA-256 måles denne grænse i tusinder af milliarder af år, selv for de mest optimistiske tilgange med specialiseret hardware. Hvilket til læserens praktiske formål er det samme som «det kan man ikke».

## SHA-256, helt specifikt

Navnet siger det hele. SHA står for *Secure Hash Algorithm*: sikker hash-algoritme. Tallet 256 angiver størrelsen af fingeraftrykket i bits: to hundrede og seksoghalvtreds bits, det vil sige toogtredive bytes, som vist i hexadecimal er de fireogtres tegn, som læseren allerede kender. Standarden blev udgivet af det amerikanske NIST, det organ der normaliserer denne type funktioner, i 2001 som en del af SHA-2-familien; den nuværende version af standarden, FIPS 180-4, er fra 2015.

Dimensionerne fortjener et øjeblik. To hundrede og seksoghalvtreds bits tillader to i to hundrede og seksoghalvtredsende forskellige værdier: et tal med otteoghalvfjerds decimalcifre, flere størrelsesordener større end det anslåede antal atomer i det observerbare univers. Hver tekst i verden —hver bog, hver e-mail, hver besked— lander på en af disse værdier. Sandsynligheden for, at to forskellige tekster falder sammen ved et tilfælde, er til praktiske formål umulig at skelne fra nul.

## Hvordan det ser ud i kode

## Hvorfor vi kalder det et laksegl

I europæisk korrespondance fra det femtende til det nittende århundrede lukkede lak brevet. En dråbe smeltet voks, et segl presset ned i det, og brevet var markeret på en måde, der ikke kunne gentages. Det beskyttede ikke indholdet mod den besluttede nysgerrige —papiret kunne læses mod lyset, lakken kunne brydes— men det dokumenterede det. Enhver ændring af lukningen var synlig for modtageren, endog før papiret blev åbnet. Lakken forhindrede ikke skaden; den erklærede den.

SHA-256 af indholdet i hver Cuaderno udfører den samme funktion i sin digitale version. Hvis blot et enkelt ord i artiklen ændrede sig mellem det øjeblik, den blev udgivet, og det øjeblik, du læser den, ville det hexadecimale segl i bunden af teksten ikke længere stemme overens med SHA-256 af den tekst, du har foran dig. Enhver læser med fem linjers kode kunne kontrollere det. Udgiveren kan ikke omskrive sin historie, uden at seglet afslører det. Det beskytter ikke mod skade; det gør den verificerbar.

## Hvad et hash ikke er

Fire anvendelser kræves undertiden af SHA-256, som det ikke er beregnet til:

1. Kryptering. Et hash opsummerer; det skjuler ikke. Hvis du ønsker, at teksten ikke skal kunne læses, skal du kryptere den, ikke hashe den.
2. Autentificering af forfatteren. Et hash fortæller ikke, hvem der skrev teksten, kun hvilken tekst der blev hashet. For at knytte forfatterskab til kræves en kryptografisk signatur oven på hashet, ikke hashet i sig selv.
3. Lagring af adgangskoder. Her er en fælde, som det er værd at forstå. SHA-256 er designet til at være meget hurtig —hvilket er godt til mange ting, men dårligt til dette. En angriber med specialiseret hardware kan afprøve milliarder af adgangskoder i sekundet mod et SHA-256 hash, indtil vedkommende finder din. Til at gemme adgangskoder skal man bruge bevidst langsomme nøgleafledningsfunktioner som Argon2, scrypt eller bcrypt, kombineret med et *salt* (en unik tilfældig data for hver bruger, der forhindrer to personer med samme adgangskode i at få det samme hash).
4. Læsning af hashet som identifikation af forfatteren. Det er det ikke. Et hash identificerer indholdet. Hvis to personer hasher ordet *hola* med SHA-256, får de begge det samme resumé — og det er den centrale egenskab, ikke en fejl: hvis de var forskellige resuméer, kunne vi ikke kontrollere overensstemmelse mellem det udgivne og det modtagne.

## Hvor SHA-256 optræder i din hverdag

Selvom du ikke ser det, understøtter SHA-256 en stor del af det, du bruger dagligt på internettet. Bitcoins blockchain er bygget ved at lænke SHA-256 fra hver blok til den næste; at ændre en tidligere blok tvinger til at genberegne hele den efterfølgende kæde. Git, det system som halvdelen af verden bruger til versionsstyring af kode, identificerer hver bekræftelse (commit) ved SHA-256 (i nyere versioner) eller ved dens forgænger SHA-1 (i ældre versioner) af dens fulde indhold. De HTTPS-certifikater, der verificerer en hjemmesides identitet, når du går ind på den, har et tilknyttet SHA-256 fingeraftryk. Software-downloads ledsages ofte af et SHA-256, som udvikleren har udgivet, så du kan kontrollere, at filen ikke blev ændret undervejs. Og som vi har sagt, i bunden af hver Cuadernos Lacre.

## Til den professionelle læser

Fire operationelle påmindelser til dem, der træffer beslutninger eller auditerer systemer:

1. Hash er ikke kryptering. Hvis en leverandør forveksler de to udtryk i sin tekniske dokumentation, er det værd at spørge, hvad vedkommende præcis mener.
2. Til lagring af adgangskoder bør man aldrig bruge SHA-256 alene. SHA-256 er for hurtig til denne opgave (se punkt 3 i *Hvad et hash ikke er*). Den nuværende standard er Argon2id: langsom af design, konfigurerbar efter serverens kapacitet, kombineret med et forskelligt tilfældigt *salt* for hver bruger.
3. For dokumentintegritet —kontrakter, sager, filer— er SHA-256 fortsat referencestandarden. Det er det, der bruges af kvalificerede tidsstempeltjenester i EU.
4. For langtidskonservering (årtier) er det værd også at beregne og arkivere et SHA-3 eller et SHA-512 sammen med SHA-256; kryptografisk forsigtighed anbefaler ikke at forlade sig på en enkelt funktion under hundredårige arkiveringer.

Forestil dig, at du har bygget den mest avancerede dominobane i verden: tusindvis af brikker, snesevis af forgreninger, mekaniske broer og ramper, der krydser hele rummet, omhyggeligt placeret brik for brik.

Hvis du giver den første brik et puf, falder kæden i en præcis og gentagelig sekvens. Samme opstilling, samme første puf → identisk slutresultat af faldne brikker, gang på gang.

Her er det interessante: Flyt en enkelt brik en halv centimeter til siden, før du starter, og puf igen. En rampe, der skulle have været aktiveret, forbliver inaktiv, en bro falder ikke, en helt anden forgrening udløses. Det endelige mønster af brikker på gulvet er fuldstændig uigenkendeligt sammenlignet med det første.

SHA-256 er matematisk set denne bane. Teksten, du skriver, er brikkernes startposition. Algoritmen er puffet, der frigiver kaskaden. And det endelige resultat — det, vi kalder et *hash* — er det fastfrosne billede af gulvet, når alt er stoppet. Skift et enkelt komma i den oprindelige tekst, og billedet vil være radikalt anderledes. Så enkelt og så drastisk.

---

*Hvis du vender tilbage til bunden af denne artikel, vil du se et hexdecimalt segl på fireogtres tegn. Det er SHA-256 af den tekst, du lige har læst, på dette sprog. Hvis vi oversatte artiklen, ville seglet være et andet; hvis et enkelt ord i den danske version ændrede sig, ville det danske segl ændre sig. Seglet beskytter ikke indholdet —til det findes der andre værktøjer— men det identificerer det entydigt. Og det er, uanset hvor beskedent det lyder, nok til at intet led i den redaktionelle kæde kan ændre det sagte, uden at det bemærkes. Resten —at kryptere, at signere, at identificere— bygges oven på denne enkle idé.*

## Kilder og yderligere læsning

- NIST — *FIPS PUB 180-4: Secure Hash Standard (SHS)*, august 2015. Officiel specifikation for SHA-2-familien, herunder SHA-256.
- RFC 6234 — *US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)*, IETF, maj 2011. Normativ version for implementører.
- Ferguson, N.; Schneier, B.; Kohno, T. — *Cryptography Engineering: Design Principles and Practical Applications* (Wiley, 2010). Kapitel 5 og 6 dækker hashfunktioner og deres legitime og illegitime anvendelser.
- Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Praktisk eksempel på brugen af SHA-256 til at lænke blokke i en struktur, der er uforanderlig af konstruktion.
- Forordning (EU) 910/2014 (eIDAS) — ramme for kvalificerede tidsstempler. SHA-256 er referencefunktionen for kvalificerede elektroniske signaturer og segl udstedt i EU.
- Referenceimplementering i Zig: std.crypto.hash.sha2.Sha256 i sprogets officielle repository (*github.com/ziglang/zig* → lib/std/crypto/sha2.zig). Det er den optimerede og auditerede version, som Solo2 faktisk bruger. Nyttig til at sammenligne med den didaktiske implementering i appendikset.

---

*Cuadernos Lacre · En udgivelse fra Menzuri Gestión S.L. · skrevet af R.Eugenio · redigeret af holdet bag Solo2.*
*https://solo2.net/da/notesboeger/*
