Terug naar begrippenlijst

Hashing

Hashing is een techniek waarmee je data omzet naar een korte, unieke code (een zogeheten hash). Die hash is altijd even lang, ongeacht hoe groot de originele data is. En belangrijker nog: je kunt die hash niet zomaar terugvertalen naar het origineel. Dat maakt hashing perfect voor het veilig opslaan of controleren van gegevens, zonder dat je de originele data hoeft te bewaren.

Geschreven door Thijn de Haas

Zwaaiende emoji

Thijn Senior developer

Meer over Thijn

Inhoudsopgave

Eénrichtingsverkeer voor je data

Hashing werkt in één richting: van data naar code. Niet andersom. Je voert bijvoorbeeld een wachtwoord in, de software maakt daar een hash van en bewaart alleen die hash. Wanneer je opnieuw inlogt, wordt jouw invoer weer gehasht en vergeleken met de opgeslagen versie. Is er een match? Dan weet het systeem dat jij het bent.

Zelfs een minimale aanpassing in de input (bijvoorbeeld een hoofdletter) levert een totaal andere hash op. Zo weet je zeker dat er nergens mee geknoeid is en dat maakt hashing ook nuttig bij integriteitschecks van bestanden.

Altijd hetzelfde, maar nooit te herleiden

Een hash is altijd uniek voor een specifieke input, maar je kunt uit een hash nooit afleiden wat de originele data was. Dat is wat hashing zo veilig maakt.

Voorbeeld

Welkom123 wordt misschien gehasht als 5f4dcc3b5aa765d61d8327deb882cf99. Maar Welkom124 levert een compleet andere hash op.

Voor kwaadwillenden heeft een gestolen hash dus weinig waarde, tenzij je een zwak algoritme gebruikt of voorspelbare data hebt. Daarom is het slim om hashing te combineren met technieken zoals salting (een unieke toevoeging per hash) en sterke algoritmes zoals SHA-256.

Een slot zonder sleutelgat

Hashing wordt vaak verward met encryptie, maar het zijn echt twee verschillende dingen. Encryptie kun je ontcijferen (met de juiste sleutel), maar hashing juist niet. Het is bedoeld om te controleren of iets klopt, niet om iets later weer terug te halen.

Wil je data kunnen teruglezen? Dan versleutel je. Wil je alleen kunnen verifiëren? Dan hash je.

Onzichtbaar, maar overal

Je merkt het misschien niet, maar hashing zit in veel van wat je dagelijks gebruikt. Denk aan inloggen bij je bank, het controleren van software-updates, het versturen van e-mails of het beheren van blockchaintransacties. Zolang je iets moet controleren zonder het prijs te geven, is hashing je vriend.

Veelgestelde vragen

Encryptie kun je terugdraaien (met een sleutel), hashing niet. Hashing is puur voor verificatie of veilige opslag zonder originele data.

Omdat het veiliger is. Als iemand je database steelt, heeft hij alleen de hashes, niet de wachtwoorden zelf.

In theorie kan dat, via brute force. Maar in de praktijk blijkt het moeilijk, zeker als je goede algoritmes en salting gebruikt.

SHA-256, bcrypt en Argon2 zijn veelgebruikte en veilige algoritmes voor hashing van wachtwoorden en data.

Thijn de Haas Senior developer

Meer over Thijn

Mijn programmeeravontuur begon rond mijn twaalfde, toen ik ontdekte dat je met code vrijwel alles kunt maken. Ik begon met het bouwen van kleine projecten en startte al snel mijn eigen hostingdienst, wat me veel leerde over maatwerkcode, serverbeheer en het koppelen aan websites. Deze kennis pas ik nu dagelijks toe in mijn werk aan websites en applicaties.

Als student Applicatieontwikkelaar liep ik drie stages bij Wux, waarbij ik tijdens de eerste stage mijn eerste bedrijf startte, deels op advies van Bo. Deze ervaringen vormden het fundament van mijn rol als lead developer en mede-eigenaar van Wux. Met een constante interesse in nieuwe technieken en het meedenken naar de beste oplossingen, zet ik mijn expertise dagelijks in om complexe vraagstukken op te lossen samen met mijn team.

Zwaaiende emoji

Thijn Senior developer

Op zoek naar slimme software-oplossingen die jouw bedrijf efficiënter maken?

Het team van Wux ontwikkelt maatwerk software die aansluit bij jouw behoeften. Neem vandaag nog contact op en ontdek hoe we jouw bedrijf elke dag succesvoller kunnen maken.

Meer over software