Wat is een MD5-hash?

Een MD5-hash is een 128-bits vingerafdruk die wordt gegenereerd uit elk stuk gegevens. Het wordt geschreven als een 32-karakters hexadecimale tekenreeks en wordt geproduceerd door een eenrichtingsfunctie: dezelfde invoer geeft altijd dezelfde hash, maar de originele gegevens kunnen er niet uit worden hersteld. Zelfs een verandering van één byte in het bronbestand produceert een volledig ander hash.

MD5 wordt veel gebruikt als checksum om te verifiëren dat een bestand zonder beschadiging is gedownload, gekopieerd of overgedragen. Hoewel MD5 niet langer als veilig wordt beschouwd voor cryptografische doeleinden zoals digitale handtekeningen, blijft het een snelle en betrouwbare manier om onopzettelijke wijzigingen op te sporen en de integriteit van bestanden te bevestigen.

Hulpprogrammabeschrijving

Dit hulpprogramma berekent de MD5-hash van een bestand rechtstreeks in uw browser, inclusief zeer grote bestanden die normaal gesproken de geheugenlimieten zouden overschrijden. Het bestand wordt in chunks gestreamd en incrementeel verwerkt, dus niets wordt naar een server geüpload en bestanden van gigabyte-grootte kunnen worden gehasht zonder de pagina te laten crashen.

Voorbeelden

Invoerbestand MD5-hash
Leeg bestand (0 bytes) d41d8cd98f00b204e9800998ecf8427e
Tekstbestand met hello 5d41402abc4b2a76b9719d911017c592
4 GB ISO-image e2fc714c4727ee9395f324cd2e7f331f (voorbeeld)

Functies

  • Hasht bestanden van elke grootte, inclusief bestanden van meerdere gigabytes, zonder ze volledig in het geheugen te laden
  • Verwerkt bestanden lokaal in de browser — geen upload, geen server, geen gegevens verlaten uw apparaat
  • Live voortgangsbalk met percentage voltooid tijdens hashing
  • Geeft bestandsnaam en leesbare bestandsgrootte weer naast het resultaat
  • Eenklik kopiëren van de resulterende MD5-checksum

Gebruiksscenario's

  • Verifiëren dat een grote download (ISO-image, video, dataset) overeenkomt met de MD5-checksum die door de bron is gepubliceerd
  • Bevestigen dat een bestand dat naar een externe schijf is gekopieerd of naar cloudopslag is geüpload, identiek is aan het origineel
  • Een vingerafdruk van een build-artefact of back-up genereren zodat u later beschadiging of manipulatie kunt opsporen

Hoe het werkt

Het bestand wordt in chunks van 16 MB gelezen met behulp van de File.slice()-API van de browser. Elke chunk wordt in een incrementele MD5-implementatie (SparkMD5) ingevoerd, die een interne status bijwerkt zonder vorige chunks in het geheugen te houden. Zodra elke chunk is verwerkt, wordt de uiteindelijke hash berekend op basis van de verzamelde status. Deze streamingbenadering houdt het geheugengebruik laag en constant, ongeacht de bestandsgrootte.

Tips

  • Voor zeer grote bestanden hangt de hashingsnelheid vooral af van de schijfleessnelheid en uw CPU; SSD's en moderne browsers geven de beste prestaties.
  • Vergelijk de gegenereerde hash met de officiële door beide in een tekstvergelijkingshulpprogramma in te plakken, of controleer eenvoudig of de tekenreeksen teken voor teken overeenkomen.
  • Als u sterkere garanties tegen opzettelijke manipulatie nodig hebt, gebruikt u in plaats daarvan een SHA-256-hulpprogramma — MD5 is geschikt voor integriteitscontroles, niet voor beveiligingskritieke verificatie.

Veelgestelde vragen

Wordt mijn bestand ergens geüpload? Nee. Hashing vindt volledig in uw browser plaats met behulp van JavaScript. Het bestand verlaat uw apparaat nooit.

Waarom wordt MD5 nog steeds gebruikt als het niet veilig is? MD5 is verbroken voor cryptografisch gebruik (een aanvaller kan botsingen creëren), maar het is nog steeds uitstekend voor het opsporen van onopzettelijke beschadiging en is veel sneller dan veilige hashes. De meeste checksumbestanden die naast downloads worden gepubliceerd, gebruiken nog steeds MD5 of SHA-1.

Wat is de maximale bestandsgrootte? Er is geen harde limiet opgelegd door het hulpprogramma. In de praktijk wordt de limiet bepaald door uw browser en beschikbare systeembronnen, maar bestanden van meerdere gigabytes werken prima omdat het bestand in chunks wordt gestreamd.