Naar inhoud springen

MD5 Hash Generator Online - Gratis MD5-versleutelingshulpmiddel

Genereer direct MD5-hashes met onze gratis online tool. Verwerking aan de clientzijde garandeert privacy. Perfect voor integriteitscontroles en bestandsverificatie.

MD5 Hash Generator

Laadcalculator...
📚

Documentatie

Wat is een MD5-hashgenerator?

Een MD5-hashgenerator is een hulpmiddel dat elk stukje tekst omzet in een code met vaste lengte, een MD5-hash genoemd. MD5 staat voor Message-Digest Algorithm 5, een hashfunctie die in 1992 werd gepubliceerd. Een woord, zin of volledig bestand invoeren levert altijd hetzelfde resultaat van 32 tekens op, terwijl zelfs een kleine wijziging in de invoer een volledig ander resultaat oplevert. Dit hulpmiddel voert het algoritme rechtstreeks in de browser uit met JavaScript, zodat de getypte tekst nooit naar een server wordt verzonden.

Hoe MD5-hashing werkt

MD5 is een eenrichtingsfunctie. De functie neemt invoer van willekeurige lengte en produceert uitvoer met vaste grootte, een hash of digest genoemd. „Eenrichtingsverkeer” betekent dat het proces niet kan worden omgekeerd: er bestaat geen methode om alleen op basis van de hash de oorspronkelijke tekst te reconstrueren.

Het algoritme verwerkt gegevens in de volgende stappen:

  1. Het bericht wordt omgezet in bytes en opgevuld, zodat de lengte een veelvoud van 512 bits is.
  2. Er wordt een veld van 64 bits toegevoegd waarin de oorspronkelijke lengte van het bericht wordt vastgelegd.
  3. Vier getallen van 32 bits krijgen vaste beginwaarden.
  4. Het opgevulde bericht wordt opgesplitst in blokken van 512 bits. Elk blok doorloopt vier rondes met 16 bewerkingen, dus 64 bewerkingen per blok. Elke bewerking mengt de gegevens van het blok met de vier lopende getallen met behulp van bitsgewijze functies, optelling en bitrotatie.
  5. Nadat elk blok is verwerkt, worden de vier getallen van 32 bits samengevoegd en als hexadecimale cijfers uitgeschreven.

Het resultaat is altijd 128 bits lang en wordt weergegeven als 32 hexadecimale tekens (0-9 en a-f), omdat elke byte van de uitvoer van 128 bits als twee hexadecimale cijfers wordt geschreven.

Een hashfunctie wordt als veilig beschouwd wanneer deze drie eigenschappen heeft: dezelfde invoer levert altijd dezelfde uitvoer op, het is onpraktisch om invoer te vinden die een gekozen hash oplevert, en het is onpraktisch om twee verschillende invoeren te vinden die dezelfde hash opleveren. MD5 heeft nog steeds de eerste eigenschap, maar de andere twee zijn doorbroken, zoals hieronder wordt beschreven.

Voorbeeld van een MD5-hash

Het hashen van het woord „hello” met MD5 levert op:

1Input:  hello
2Output: 5d41402abc4b2a76b9719d911017c592
3

Het hashen van een lege tekenreeks levert eveneens een vast, niet-leeg resultaat op, omdat de opvulling en het lengteveld nog steeds door het algoritme worden verwerkt:

1Input:  (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3

Het wijzigen van één teken, bijvoorbeeld door de eerste letter hoofdletter te maken in „Hello”, levert een volledig andere tekenreeks van 32 tekens op. Dit wordt het lawine-effect genoemd: kleine wijzigingen in de invoer veroorzaken grote, onvoorspelbare wijzigingen in de uitvoer.

Een MD5-hashgenerator gebruiken

  1. Typ of plak tekst in het invoervak.
  2. De hash verschijnt automatisch onder het vak en wordt bijgewerkt wanneer de tekst verandert. Er hoeft geen aparte knop te worden ingedrukt.
  3. Klik op „Copy” om de hash van 32 tekens naar het klembord te kopiëren.
  4. Onder het resultaat verschijnt een kleine gekleurde balk die uit een deel van de hash wordt gegenereerd en snel visueel laat zien of twee hashes van elkaar verschillen.

Omdat de berekening plaatsvindt in de eigen JavaScript-engine van de browser, heeft de pagina na het laden geen internetverbinding nodig en wordt de getypte tekst nergens naartoe verzonden.

Veelvoorkomende toepassingen van MD5-hashes

  • Controleren of een gedownload bestand tijdens de overdracht niet beschadigd is geraakt door de hash ervan te vergelijken met een gepubliceerde waarde.
  • Opzoeksleutels of cache-identificatoren voor gegevens maken, omdat een hash een korte waarde met vaste grootte is die een langere waarde vervangt.
  • Dubbele bestanden detecteren door hashes te vergelijken in plaats van de volledige inhoud van bestanden.
  • Versiebeheersystemen en buildsystemen, die hashes gebruiken om te detecteren of een bestand is gewijzigd.

MD5 is niet geschikt voor het opslaan van wachtwoorden, het genereren van digitale handtekeningen of andere situaties waarin een aanvaller de hash kan proberen te vervalsen of terug te draaien. De redenen worden in de volgende paragraaf behandeld.

Geschiedenis van MD5

Ronald Rivest, een Amerikaanse cryptograaf, ontwierp MD5 in 1991 als opvolger van zijn eerdere algoritme MD4. De Internet Engineering Task Force publiceerde de specificatie als RFC 1321 in (3.360 cm) 1992, waarna MD5 veel werd gebruikt voor checksums en een tijdlang ook voor beveiligingsdoeleinden.

Zwakke punten in de interne structuur van MD5 werden al in 1996 opgemerkt. In 2004 toonde een team onder leiding van cryptograaf Xiaoyun Wang een praktische methode om twee verschillende invoeren te maken die dezelfde MD5-hash opleveren, een fout die een botsing wordt genoemd. In 2008 gebruikte een andere groep onderzoekers een botsingsaanval om een frauduleus beveiligingscertificaat voor een website te vervalsen, dat browsers uit die tijd als echt zouden hebben geaccepteerd. Deze resultaten leidden ertoe dat instanties voor beveiligingsstandaarden MD5 niet langer aanbevalen voor toepassingen waarbij vervalsing van belang is.

Beveiligingszwakheden van MD5

  • De botsingsbestendigheid is doorbroken. Het is rekenkundig haalbaar om twee verschillende invoeren met dezelfde MD5-hash te maken.
  • Bij wachtwoorden werkt snelheid in het nadeel. MD5 is ontworpen om snel te berekenen, wat nuttig is voor checksums maar ongeschikt voor het opslaan van wachtwoorden, omdat een aanvaller op gewone hardware miljarden pogingen per seconde kan doen.
  • Er is publiekelijk geen pre-image-aanval bekend die sneller is dan brute force. Een exacte invoer uit een hash terugvinden blijft dus moeilijk, maar dat alleen maakt MD5 niet geschikt voor beveiligingsgevoelige toepassingen.

Vanwege deze problemen is MD5 ongeschikt voor het opslaan van wachtwoorden, digitale handtekeningen, SSL/TLS-certificaten en elke toepassing waarin iemand opzettelijk een overeenkomende hash probeert te maken.

Alternatieven voor MD5

  • SHA-256, onderdeel van de SHA-2-familie, produceert een hash van 256 bits en heeft geen bekende praktische botsingsaanval.
  • SHA-3, een nieuwere standaard met een ander intern ontwerp dan SHA-2.
  • BLAKE2, een snelle hashfunctie waarvan de beveiliging vergelijkbaar wordt geacht met die van SHA-3.
  • Bcrypt, scrypt of Argon2, speciaal ontworpen voor het opslaan van wachtwoorden, omdat deze algoritmen bewust langzaam zijn en bestand tegen raden met hardwareversnelling.

Veelgestelde vragen

Waarvoor wordt MD5 tegenwoordig gebruikt?

Voornamelijk voor niet-beveiligingsgerelateerde taken, zoals controles van bestandsintegriteit, deduplicatie en cachesleutels. Het wordt niet langer aanbevolen voor wachtwoorden, handtekeningen of certificaten.

Kan een MD5-hash worden teruggedraaid om de oorspronkelijke tekst te verkrijgen?

Nee. MD5 is een eenrichtingsfunctie, dus er bestaat geen berekening die een hash terug omzet in de invoer. Een aanvaller kan nog steeds waarschijnlijke invoeren raden en van elk daarvan de hash berekenen om te controleren of deze overeenkomt. Daarom is MD5 onveilig voor wachtwoorden.

Waarom is MD5 onveilig voor het opslaan van wachtwoorden?

Omdat de berekening zeer snel is, kan een aanvaller met moderne hardware enorme aantallen wachtwoordpogingen per seconde testen. Speciaal daarvoor ontworpen algoritmen zoals bcrypt, scrypt en Argon2 zijn bewust langzaam om dit tegen te gaan.

Hoe lang is een MD5-hash?

Altijd 128 bits, weergegeven als 32 hexadecimale tekens, ongeacht de lengte van de ingevoerde tekst.

Kunnen twee verschillende invoeren dezelfde MD5-hash opleveren?

Ja. Dit wordt een botsing genoemd en onderzoekers hebben sinds 2004 praktische methoden aangetoond om zulke paren te maken. Dit is de belangrijkste reden waarom MD5 niet langer als veilig wordt beschouwd.

Verzendt dit hulpmiddel de getypte tekst naar een server?

Nee. De hash wordt berekend door JavaScript dat in de browser draait en de invoer verlaat het apparaat nooit.

Wat is het verschil tussen MD5 en SHA-256?

Beide zijn hashfuncties, maar SHA-256 produceert een langere hash van 256 bits en heeft geen bekende praktische botsingsaanval, terwijl de botsingsbestendigheid van MD5 is doorbroken. SHA-256 is de betere keuze wanneer beveiliging van belang is.

Referenties

  1. Rivest, R. (1992). "The MD5 Message-Digest Algorithm." RFC 1321, Internet Engineering Task Force. https://tools.ietf.org/html/rfc1321
  2. Turner, S., Chen, L. (2011). "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms." RFC 6151, Internet Engineering Task Force. https://tools.ietf.org/html/rfc6151
  3. Wang, X., Yu, H. (2005). "How to Break MD5 and Other Hash Functions." Advances in Cryptology - EUROCRYPT 2005.
  4. Sotirov, A., et al. (2008). "MD5 Considered Harmful Today: Creating a Rogue CA Certificate." Gepresenteerd op het 25e Chaos Communication Congress.
  5. National Institute of Standards and Technology (2015). "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions." FIPS 202. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf