Hoe MD5-, SHA-256- en andere hashes te genereren
Hashing converteert elke invoer — een wachtwoord, een bestand, een bericht — naar een string van vaste lengte. Dezelfde invoer produceert altijd dezelfde hash, maar de geringste wijziging in de invoer produceert een totaal andere hash. Dit maakt hashing essentieel voor integriteitscontrole, wachtwoordopslag en digitale handtekeningen.
Hoe hashing werkt
Een hashfunctie neemt een invoer van elke grootte en produceert een uitvoer van vaste grootte:
| Invoer | SHA-256-hash (eerste 16 tekens) |
|---|---|
| hello | 2cf24dba5fb0a30e... |
| Hello | 185f8db32271fe25... |
| hello! | ce06092fb948d9ff... |
Merk op dat één enkel teken gewijzigd (kleine h naar hoofdletter H) of toegevoegd de hash volledig verandert. Dit wordt het lawine-effect genoemd.
Veelvoorkomende hash-algoritmen
| Algoritme | Lengte | Status | Te gebruiken voor |
|---|---|---|---|
| MD5 | 32 tekens | Gebroken (onveilig) | Verouderde checksums, niet-veilige toepassingen |
| SHA-1 | 40 tekens | Gebroken (onveilig) | Alleen verouderde systemen |
| SHA-256 | 64 tekens | Veilig | Bestandsintegriteit, digitale handtekeningen |
| SHA-512 | 128 tekens | Veilig | Toepassingen met hoge beveiliging |
SHA-256 is de huidige standaard voor de meeste toepassingen. MD5 en SHA-1 mogen alleen worden gebruikt om te interageren met verouderde systemen die ze vereisen.
Hoe een hash te genereren
- Kies uw algoritme — selecteer MD5, SHA-1, SHA-256, SHA-384 of SHA-512. Gebruik SHA-256 tenzij om een specifieke reden.
- Voer tekst in of importeer een bestand — typ of plak tekst, of selecteer een bestand om te hashen.
- Kopieer de hash — het resultaat is een hexadecimale string die bruikbaar is voor verificatie, opslag of vergelijking.
Praktisch gebruik
Bestandsintegriteitscontrole — download een bestand en vergelijk de hash met die officieel gepubliceerd. Als ze overeenkomen, is het bestand authentiek en niet beschadigd.
Wachtwoordopslag — applicaties slaan wachtwoord-hashes op, niet de wachtwoorden zelf. Wanneer u inlogt, wordt uw invoer gehasht en vergeleken met de opgeslagen hash.
Gegevens-deduplicatie — hash grote bestanden om snel te bepalen of ze identiek zijn zonder ze byte voor byte te vergelijken.
HMAC voor API-beveiliging — gebruik HMAC (hash met een geheime sleutel) om API-aanvragen te ondertekenen en ervoor te zorgen dat ze niet zijn gewijzigd tijdens transit.
Tips
- Gebruik SHA-256 standaard — het is veilig, breed ondersteund, en het is de standaard aanbeveling voor nieuwe projecten.
- Gebruik MD5 nooit voor beveiliging — MD5-collisions (verschillende invoer die dezelfde hash produceert) kunnen in seconden worden gegenereerd. Het is geschikt voor niet-veilige checksums maar niet voor wat telt in integriteit.
- Zout uw wachtwoord-hashes — een willekeurig zout aan elk wachtwoord toevoegen voor het hashen voorkomt regenboogtafel-aanvallen. Gebruik bcrypt of Argon2 voor wachtwoord-hashing in productie.
- Bestand-hashing werkt lokaal — het bestand wordt verwerkt in uw browser, dus zelfs grote bestanden verlaten nooit uw apparaat.
Veelgestelde vragen
Wat is het verschil tussen MD5, SHA-1 en SHA-256?
MD5 produceert een hash van 128 bits (32 hex-tekens), SHA-1 produceert 160 bits (40 tekens) en SHA-256 produceert 256 bits (64 tekens). MD5 en SHA-1 worden als cryptografisch gebroken beschouwd. SHA-256 is momenteel veilig en aanbevolen voor integriteitsverificatie en beveiliging.
Kan men een hash omkeren om de oorspronkelijke gegevens terug te vinden?
Nee. Hashfuncties zijn eenrichting per ontwerp. U kunt een hash niet wiskundig omkeren naar de invoer. Daarentegen kunnen veelvoorkomende wachtwoorden worden gevonden in voorberekende tabellen (rainbow tables), vandaar het belang van het zouten van wachtwoorden voor het hashen.
Wat is HMAC?
HMAC (Hash-based Message Authentication Code) combineert een hashfunctie met een geheime sleutel. Het verifieert zowel de integriteit als de authenticiteit van gegevens — bewijst dat ze niet zijn gewijzigd en dat ze zijn geproduceerd door iemand die de geheime sleutel kent.
Worden mijn gegevens naar een server verzonden?
Nee. Alle hashing draait in uw browser met de Web Crypto API. Uw teksten en bestanden verlaten nooit uw apparaat.