MD5-hashgenerator

Bereken de 128-bits MD5-hashwaarde van tekst, hex-bytes of een bestand. De hash wordt bijgewerkt terwijl je typt, en het veld Vergelijken met laat zien of hij overeenkomt met de controlesom die je verwachtte.

Alle algoritmen

Werkt volledig in je browser. Er wordt niets geüpload.

Zo gebruik je het

  1. Typ of plak tekst, zet Invoer als op Hex voor hex-bytes, of klik op Bestand openen om de exacte bytes van een bestand te hashen.
  2. Laat Tekencodering op UTF-8 staan, tenzij de oorspronkelijke hash is berekend over tekst in een andere tekenset.
  3. Kies bij Uitvoer als voor hex (kleine letters), HEX (hoofdletters) of Base64.
  4. Wil je een download controleren, plak dan de gepubliceerde MD5 in het veld Vergelijken met en kijk of Komt overeen verschijnt.

Wat is MD5?

MD5 (Message-Digest Algorithm 5) is ontworpen door Ronald Rivest en in 1992 gepubliceerd als RFC 1321. Het algoritme leest de invoer in blokken van 512 bits en levert een hashwaarde van 128 bits op, meestal geschreven als 32 hexadecimale tekens of 24 Base64-tekens. Dezelfde invoer geeft altijd dezelfde hashwaarde, en als je één bit van de invoer verandert, verandert ongeveer de helft van de uitvoerbits.

Hashen werkt maar in één richting: er is geen sleutel en geen manier om een MD5-hash te "ontsleutelen" tot de oorspronkelijke invoer. Sites die beweren MD5 te kunnen terugdraaien, zoeken de hash op in enorme tabellen met gehashte woorden en uitgelekte wachtwoorden. Daarom wordt de MD5 zonder salt van een kort wachtwoord vaak binnen enkele seconden gevonden.

Is MD5 nog veilig?

Niet tegen een aanvaller. Xiaoyun Wang en haar collega's publiceerden in 2004 praktische botsingen: twee verschillende invoeren met dezelfde MD5. Daarna volgden chosen-prefix-botsingen: onderzoekers gebruikten er in 2008 een om een malafide CA-certificaat te maken, en in 2012 gebruikte de malware Flame er een om een certificaat te vervalsen waardoor de code ervan door Microsoft ondertekend leek. Tegenwoordig vindt een gewone laptop binnen enkele seconden een MD5-botsing, en RFC 6151 stelt dat MD5 niet langer acceptabel is waar botsingsbestendigheid vereist is, zoals bij digitale handtekeningen.

Als controlesom tegen onbedoelde beschadiging, zoals een onvolledige download of een omgeklapte bit op een schijf, is MD5 nog prima, net als voor cachesleutels of het ontdubbelen van vertrouwde gegevens. Kan het bestand of de controlesom ervan van een aanvaller afkomstig zijn, gebruik dan SHA-256.

Hex, Base64 en hashes die niet overeenkomen

MD5 wordt normaal als hex weergegeven; dat is ook wat md5sum uitvoert. Sommige protocollen versturen de ruwe 16 bytes in plaats daarvan als Base64, bijvoorbeeld de HTTP-header Content-MD5 die cloudopslag-API's zoals Amazon S3 gebruiken. Kies Base64 als uitvoer, of zet een bestaande waarde om met Hex naar Base64.

Wijkt je MD5 af van die van een andere tool, dan verschillen de invoerbytes. De gebruikelijke oorzaken zijn een afsluitend regeleinde, Windows-regeleinden of een andere tekencodering: "café" is 5 bytes in UTF-8 maar 4 bytes in ISO-8859-1, dus de twee hashes hebben niets met elkaar gemeen.

$ echo "hello" | md5sum      # hasht "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # hasht "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 op de opdrachtregel en in code

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

De Web Crypto API die in browsers is ingebouwd, ondersteunt geen MD5. Deze pagina berekent het daarom in JavaScript op je eigen apparaat; er wordt niets geüpload. De tabel Alle algoritmen onder het resultaat toont SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 en CRC-32C voor dezelfde invoer.

Voorbeelden

Invoer (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

Veelgestelde vragen

Kan een MD5-hash worden ontsleuteld?
Nee. MD5 is een hashfunctie die maar in één richting werkt en geen versleuteling, dus er valt niets te ontsleutelen; een "MD5-decrypter" kan alleen een invoer teruggeven die al in zijn tabellen staat. Heb je de oorspronkelijke gegevens later weer nodig, versleutel ze dan. Hoeven ze niet geheim te blijven, codeer ze dan met Base64; dat is volledig omkeerbaar.
Is MD5 goed genoeg om een download te controleren?

Het spoort onbedoelde beschadiging betrouwbaar op. Omdat botsingen goedkoop zijn, kan iemand die vooraf een bestand voorbereidt echter een tweede, ander bestand met dezelfde MD5 maken. Controleer bij downloads waarbij veiligheid telt een SHA-256-hash uit een betrouwbare bron of een digitale handtekening.

Hoe lang is een MD5-hash?
128 bits, oftewel 16 bytes: 32 tekens in hex of 24 tekens in Base64, eindigend op ==. Een hexstring van 32 tekens kan ook een MD4- of NTLM-hash zijn; de Hash-identifier toont de kandidaten.
Kan ik de MD5 van een groot bestand berekenen?
Ja. Open het bestand en de bytes ervan worden in je browser gehasht zonder te worden geüpload. De grens is het geheugen dat je browser kan gebruiken, dus bestanden van meerdere gigabytes kun je beter hashen met md5sum of certutil.
Moet ik wachtwoorden als MD5 opslaan?
Nee. MD5 is ontworpen om snel te zijn, waardoor één GPU miljarden pogingen per seconde kan testen. Sla wachtwoorden op met Argon2id, scrypt, bcrypt of PBKDF2; die voegen een salt toe en zijn met opzet traag. De Wachtwoordgenerator maakt om te beginnen al sterke wachtwoorden.