← Alle simulators

#️⃣ MD5 Hashing Uitleg

Wat is MD5?

MD5 (Message Digest Algorithm 5) is een hash-functie, ontworpen door Ron Rivest in 1991. Net als SHA-256 neemt hij tekst van willekeurige lengte en geeft daar een vaste, korte "vingerafdruk" van terug — bij MD5 altijd 128 bit, weergegeven als 32 hexadecimale tekens.

Dezelfde basisprincipes gelden: eenrichtingsverkeer (je kunt niet terugrekenen naar de originele tekst) en het avalanche-effect (één letter anders in de invoer geeft een compleet andere hash).

⚠️ MD5 is gebroken. Sinds 2004 kunnen aanvallers doelbewust twee verschillende bestanden maken die toevallig dezelfde MD5-hash hebben ("botsingen"/collisions). Gebruik MD5 daarom nooit meer voor wachtwoorden, digitale handtekeningen of het controleren of een bestand niet is aangepast door een aanvaller. Voor die dingen gebruik je vandaag de dag SHA-256 of sterker.

🔢 Probeer het zelf — live MD5 vs. SHA-256

Dit is een echte, werkende MD5-berekening (in JavaScript, want browsers bieden MD5 bewust niet meer ingebouwd aan omdat het onveilig is) naast een echte SHA-256-berekening ter vergelijking.

32 hex-tekens — gebroken, niet gebruiken voor beveiliging
64 hex-tekens — dit gebruik je vandaag de dag wél

🌊 Avalanche-effect

Eén teken anders in de invoer — kijk hoe totaal anders de MD5-hash eruitziet:

📜 Hoe MD5 in de praktijk gebroken werd

2004 — Wang, Feng, Lai en Yu publiceren de eerste praktische methode om twee verschillende berichten met dezelfde MD5-hash te maken.
2008 — Onderzoekers gebruiken zo'n botsing om een vals maar geldig ogend HTTPS-certificaat te vervalsen, ondertekend als een vertrouwde certificaatautoriteit.
2012 — De Flame-malware misbruikt een MD5-botsing om zich te vermommen als een officiële Windows Update, ondertekend met een vervalst Microsoft-certificaat.

Elke keer dezelfde les: zodra een hash-functie botsingen toelaat, kan een aanvaller iets kwaadaardigs laten doorgaan voor iets vertrouwds — een digitale handtekening is namelijk alleen betrouwbaar als het écht onmogelijk is om twee verschillende dingen dezelfde hash te geven.