# Wat SHA-256 echt is

> Cuadernos Lacre · Concept · 19 mei 2026
> https://solo2.net/nl/schrifter/articulos/wat-is-sha-256-echt-is.html

Een wiskundige vingerafdruk van vierenzestig tekens die volledig verandert als er ook maar één komma in de oorspronkelijke tekst wordt verplaatst. Waarom we het een digitaal lakzegel noemen.

---

## Het eenvoudige idee achter de technische naam

Stel je een machine voor met slechts één gleuf en één scherm. Door de gleuf voer je een tekst in: een woord, een zin, een hele roman. Op het scherm verschijnt even later een reeks van precies vierenzestig tekens. Voor de professionele lezer noemen we die reeks een *hash* of *cryptografische samenvatting*; voor de algemene lezer kunnen we het voorlopig een wiskundige vingerafdruk van de tekst noemen, zoals een vingerafdruk dat is voor een persoon.

Als je twee keer dezelfde tekst invoert, toont de machine beide keren dezelfde vingerafdruk. Als je een tekst invoert die net even anders is —één verplaatste komma, een hoofdletter die een kleine letter wordt— toont de machine een vingerafdruk die totaal anders is dan de eerste. Niet een beetje anders: compleet anders. Die twee eigenschappen samen —determinisme en gevoeligheid— vormen het eenvoudige idee. Al het andere aan SHA-256 is het mechanisme dat ervoor zorgt dat dit goed gebeurt.

Het is goed om vanaf het begin te zeggen wat de machine niet doet. Het versleutelt de tekst niet. Het verbergt de tekst niet. Het slaat de tekst niet op. De machine bekijkt de tekst, berekent de vingerafdruk en vergeet de tekst. De vingerafdruk maakt het niet mogelijk om de tekst te herleiden die hem heeft geproduceerd; het maakt het alleen mogelijk om bij een kandidaat-tekst te controleren of deze overeenkomt met het origineel. Daarom zeggen we dat het een samenvatting in *één richting* is: je kunt erheen, maar niet terug.

## Een hash is niet hetzelfde als versleutelen

Er is vaak verwarring over en het is goed om dat op te helderen: versleutelen en hashen zijn verschillende bewerkingen. Versleutelen bestaat uit het transformeren van een tekst op een zodanige manier dat alleen de bezitter van de sleutel deze in zijn oorspronkelijke vorm kan terugkrijgen. Hashen bestaat uit het produceren van een vingerafdruk van de tekst waarvan de oorspronkelijke tekst nooit kan worden hersteld, met of zonder sleutel. De eerste is door ontwerp omkeerbaar; de tweede is door ontwerp onomkeerbaar.

Het praktische gevolg is belangrijk. Wanneer een applicatie zegt «we bewaren je wachtwoord versleuteld», is er iemand die de sleutel heeft om het te ontsleutelen — de applicatie zelf, in elk geval. Wanneer een applicatie zegt «we bewaren je wachtwoord gehasht», kan de applicatie zelf het originele wachtwoord niet lezen, ook al zou ze dat willen; ze kan alleen controleren of wat jij typt dezelfde vingerafdruk produceert. Het tweede model is, mits goed uitgevoerd, veel beter dan het eerste voor het opslaan van wachtwoorden. Later zullen we zien waarom «goed uitgevoerd» meer vereist dan alleen SHA-256.

## De vier eigenschappen die een cryptografische hash nuttig maken

Een hashfunctie die het bijvoeglijk naamwoord *cryptografisch* verdient, voldoet aan vier eigenschappen:

1. Determinisme. Dezelfde invoer produceert altijd dezelfde vingerafdruk.
2. Avalanche-effect. Een kleine wijziging in de invoer produceert een totaal andere vingerafdruk, zonder zichtbare gelijkenis met de vorige.
3. Weerstand tegen inversie. Gegeven een vingerafdruk is het computationeel niet haalbaar om de tekst te vinden die deze heeft geproduceerd.
4. Weerstand tegen collisies. Het is computationeel niet haalbaar om twee verschillende teksten te vinden die dezelfde vingerafdruk produceren.

«Niet computationeel haalbaar» betekent niet «wiskundig onmogelijk». Het betekent dat de kosten in tijd, energie en geld om dit te bereiken de totale redelijkerwijs beschikbare computercapaciteit met vele ordes van grootte overtreffen. Voor SHA-256 wordt die grens gemeten in duizenden triljoenen jaren, zelfs voor de meest optimistische scenario's met gespecialiseerde hardware. Wat voor de praktische doeleinden van de lezer hetzelfde is als «het kan niet».

## SHA-256, in het bijzonder

De naam zegt alles. SHA staat voor *Secure Hash Algorithm*: een veilig hash-algoritme. Het getal 256 geeft de grootte van de vingerafdruk in bits aan: tweehonderdzesenvijftig bits, oftewel tweeëndertig bytes, die in hexadecimaal weergegeven de vierenzestig tekens zijn die de lezer al herkent. De standaard werd in 2001 gepubliceerd door het Amerikaanse NIST, de instantie die dit soort functies normaliseert, als onderdeel van de SHA-2-familie; de huidige versie van de standaard, FIPS 180-4, dateert uit 2015.

De afmetingen verdienen een moment aandacht. Tweehonderdzesenvijftig bits maken twee tot de macht tweehonderdzesenvijftig verschillende waarden mogelijk: een getal met achtenzeventig decimalen, vele ordes van grootte groter dan het geschatte aantal atomen in het waarneembare universum. Elke tekst in de wereld —elk boek, elke e-mail, elk bericht— valt op een van die waarden. De kans dat twee verschillende teksten toevallig samenvallen, is voor praktische doeleinden niet te onderscheiden van nul.

## Hoe het er in code uitziet

## Waarom we het een lakzegel noemen

In de Europese correspondentie van de vijftiende tot de negentiende eeuw sloot lakzegel de brief af. Een druppel gesmolten was, een zegel erop gedrukt, en de brief was op een onherhaalbare manier gemerkt. Het beschermde de inhoud niet tegen de vastberaden gluurder —het papier kon tegen het licht worden gelezen, de lak kon worden gebroken— maar het maakte het wel zichtbaar. Elke wijziging aan de sluiting was zichtbaar voor de ontvanger voordat het papier zelfs maar was geopend. De lak voorkwam de schade niet; het maakte het kenbaar.

De SHA-256 van de tekst van elk Cuaderno vervult dezelfde functie in zijn digitale versie. Als er ook maar één woord in het artikel zou veranderen tussen het moment van publicatie en het moment dat jij het leest, zou het hexadecimale zegel onderaan de tekst niet meer overeenkomen met de SHA-256 van de tekst die voor je ligt. Elke lezer zou dit met vijf regels code kunnen controleren. De publicatie kan haar geschiedenis niet herschrijven zonder dat het zegel dit verraadt. Het beschermt niet tegen schade; het maakt het controleerbaar.

## Wat een hash niet is

Er worden soms vier toepassingen gevraagd van SHA-256 die er niet bij horen:

1. Versleutelen. Een hash vat samen; het verbergt niet. Als je wilt dat de tekst niet gelezen kan worden, moet je deze versleutelen, niet hashen.
2. De auteur authenticeren. Een hash zegt niet wie de tekst heeft geschreven, alleen welke tekst is gehasht. Om auteurschap te koppelen, is een cryptografische handtekening bovenop de hash nodig, niet alleen de hash.
3. Wachtwoorden opslaan. Hier zit een valstrik die je moet begrijpen. SHA-256 is ontworpen om erg snel te zijn —wat goed is voor veel dingen, maar slecht voor dit doel. Een aanvaller met gespecialiseerde hardware kan miljarden wachtwoorden per seconde uitproberen tegen een SHA-256-hash tot hij die van jou vindt. Om wachtwoorden op te slaan, moeten opzettelijk trage sleutelafleidingsfuncties zoals Argon2, scrypt of bcrypt worden gebruikt, gecombineerd met een *salt* (unieke willekeurige gegevens per gebruiker, die voorkomen dat twee personen met hetzelfde wachtwoord dezelfde hash hebben).
4. De hash lezen als identificatie van de auteur. Dat is het niet. Een hash identificeert de inhoud. Als twee mensen het woord *hola* hashen met SHA-256, krijgen ze allebei dezelfde samenvatting — en dat is de kerneigenschap, geen defect: als het verschillende samenvattingen waren, zouden we de overeenkomst tussen wat gepubliceerd is en wat ontvangen is niet kunnen controleren.

## Waar SHA-256 in je dagelijks leven verschijnt

Zelfs als je het niet ziet, vormt SHA-256 de basis van een groot deel van wat je dagelijks op internet gebruikt. De Bitcoin-blockchain wordt gebouwd door de SHA-256 van elk blok aan het volgende te koppelen; het wijzigen van een blok uit het verleden dwingt tot het herberekenen van de hele daaropvolgende keten. Git, het systeem waarmee de code van de halve wereld wordt bijgehouden, identificeert elke commit door de SHA-256 (in recente versies) of door zijn voorganger SHA-1 (in oudere versies) van de volledige inhoud. HTTPS-certificaten die de identiteit van een website verifiëren wanneer je deze bezoekt, hebben een bijbehorende SHA-256-vingerafdruk. Software-downloads gaan vaak vergezeld van een door de ontwikkelaar gepubliceerde SHA-256, zodat je kunt controleren of het bestand onderweg niet is gewijzigd. En, zoals we al zeiden, onderaan elk Cuaderno Lacre.

## Voor de professionele lezer

Vier operationele herinneringen voor wie systemen beslist of auditeert:

1. Hash is geen versleuteling. Als een leverancier de twee termen verwisselt in zijn technische documentatie, is het verstandig om te vragen wat hij precies bedoelt.
2. Voor het opslaan van wachtwoorden mag nooit alleen SHA-256 worden gebruikt. SHA-256 is te snel voor deze taak (zie punt 3 van *Wat een hash niet is*). De huidige standaard is Argon2id: traag door ontwerp, configureerbaar op basis van de servercapaciteit, gecombineerd met een unieke willekeurige *salt* per gebruiker.
3. Voor documentintegriteit —contracten, dossiers, bestanden— blijft SHA-256 de referentiestandaard. Het is wat gekwalificeerde tijdstempeldiensten in de EU gebruiken.
4. Voor langetermijnconservering (decennia) is het raadzaam om ook een SHA-3 of een SHA-512 te berekenen en te archiveren naast de SHA-256; cryptografische voorzichtigheid raadt aan om niet op één enkele functie te vertrouwen bij archieven van honderd jaar oud.

Stel je voor dat je het meest uitgebreide dominocircuit ter wereld hebt gebouwd: duizenden stenen, tientallen vertakkingen, mechanische bruggen en hellingen die de hele kamer doorkruisen, zorgvuldig stuk voor stuk geplaatst.

Als je de eerste steen een tikje geeft, valt de keten in een precieze en herhaalbare reeks. Dezelfde opstelling, dezelfde eerste tik → identiek eindpatroon van gevallen stenen, keer op keer.

Hier is het interessante: verplaats slechts één steen een halve centimeter opzij voordat je begint en tik opnieuw. Een helling die geactiveerd had moeten worden blijft inactief, een brug valt niet, een andere vertakking wordt in gang gezet. Het eindpatroon van de stenen op de grond is compleet onherkenbaar vergeleken met het eerste.

SHA-256 is wiskundig gezien dit circuit. De tekst die je schrijft is de beginpositie van de stenen. Het algoritme is de tik die de cascade ontketent. En het eindresultaat — wat we een *hash* noemen — is de momentopname van de grond wanneer alles tot stilstand is gekomen. Verander een enkele komma van de originele tekst en de foto zal radicaal anders zijn. Zo simpel is het, en zo drastisch.

---

*Als je teruggaat naar de voet van dit artikel, zie je een hexadecimaal zegel van vierenzestig tekens. Het is de SHA-256 van de tekst die je zojuist hebt gelezen, in deze taal. Als we het artikel zouden vertalen, zou het zegel anders zijn; als er een woord van de Nederlandse versie zou veranderen, zou het Nederlandse zegel veranderen. Het zegel beschermt de inhoud niet —daar zijn andere hulpmiddelen voor— maar het identificeert deze op unieke wijze. En dat, hoe bescheiden het ook klinkt, is voldoende zodat geen enkele stap in de redactionele keten wat gezegd is kan wijzigen zonder dat het opvalt. De rest —versleutelen, ondertekenen, identificeren— is gebouwd op dit eenvoudige idee.*

## Bronnen und verdere lectuur

- NIST — *FIPS PUB 180-4: Secure Hash Standard (SHS)*, augustus 2015. Officiële specificatie van de SHA-2-familie, inclusief SHA-256.
- RFC 6234 — *US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)*, IETF, mei 2011. Normatieve versie voor implementeerders.
- Ferguson, N.; Schneier, B.; Kohno, T. — *Cryptography Engineering: Design Principles and Practical Applications* (Wiley, 2010). Hoofdstukken 5 en 6 behandelen hashfuncties en hun legitieme en onwettige gebruik.
- Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Praktisch voorbeeld van het gebruik van SHA-256 om blokken te koppelen in een onveranderlijke structuur door constructie.
- Verordening (EU) 910/2014 (eIDAS) — kader voor gekwalificeerde tijdstempeldiensten. SHA-256 is de referentiefunctie voor gekwalificeerde elektronische handtekeningen en zegels die in de EU worden uitgegeven.
- Referentie-implementatie in Zig: std.crypto.hash.sha2.Sha256 in de officiële repository van de taal (*github.com/ziglang/zig* → lib/std/crypto/sha2.zig). Het is de geoptimaliseerde en geauditeerde versie die Solo2 daadwerkelijk gebruikt. Nuttig om te contrasteren met de didactische implementatie van de bijlage.

---

*Cuadernos Lacre · Een uitgave van Menzuri Gestión S.L. · geschreven door R.Eugenio · geredigeerd door het team van Solo2.*
*https://solo2.net/nl/schrifter/*
