Utilia

Hash-generator

Bereken MD5-, SHA-1-, SHA-256- en SHA-512-hashes van tekst of bestanden van elke grootte en controleer checksums. Alles draait in je browser.

Hashen
Tekst wordt als UTF-8 gecodeerd.
Algoritmen

Zo gebruik je de hash-generator

  1. Kies onder Hashen voor Tekst of Bestanden.
  2. Voor tekst typ of plak je die in Tekst om te hashen. De hashes worden bijgewerkt terwijl je typt; de knop Hashen berekent ze op verzoek opnieuw.
  3. Voor bestanden sleep je een of meer bestanden naar het sleepvak, of klik je erop om ze te kiezen. Bij grote bestanden verschijnt een voortgangsbalk met een knop Annuleren.
  4. Selecteer de Algoritmen die je nodig hebt (MD5, SHA-1, SHA-256, SHA-512) en het Uitvoerformaat: hexadecimaal in kleine letters, hexadecimaal in hoofdletters of Base64.
  5. Wil je een download controleren, plak dan de gepubliceerde checksum in Vergelijken met een verwachte hash (optioneel). De tool zegt welk algoritme overeenkomt, of dat er geen enkel overeenkomt.

Wat is een hash?

Een cryptografische hashfunctie zet elke invoer, of het nu één woord is of een schijfkopie van 50 GB, om in een korte vingerafdruk met een vaste lengte. Dezelfde invoer geeft altijd dezelfde hash, en één bit veranderen in de invoer verandert het resultaat volledig. Je kunt een hash niet terugrekenen naar de invoer.

Algoritme Uitvoergrootte Lengte in hex Status
MD5 128 bits 32 tekens Gebroken: alleen voor checksums
SHA-1 160 bits 40 tekens Gebroken: collisions aangetoond in 2017
SHA-256 256 bits 64 tekens Veilig, de huidige standaard
SHA-512 512 bits 128 tekens Veilig, vaak sneller op 64-bitsprocessors

De SHA-256-hash van abc is bijvoorbeeld ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Een download controleren

Softwaremakers zetten vaak een SHA-256-checksum naast hun bestanden. Open na het downloaden de modus Bestanden, sleep het bestand erin en plak de gepubliceerde waarde in het vergelijkingsveld. Een overeenkomst bewijst dat het bestand niet beschadigd is geraakt tijdens het downloaden en identiek is aan het bestand dat de maker heeft gehasht. Het bewijst niet dat de maker betrouwbaar is. Daarvoor moet de checksum zelf uit een betrouwbare bron komen, zoals een HTTPS-site of een ondertekende release.

Hoe grote bestanden worden verwerkt

Bestanden worden lokaal gelezen en nooit geüpload. Bestanden tot 64 MB worden in één keer gehasht met de ingebouwde Web Crypto-API van je browser. Grotere bestanden worden in stukken van 4 MB gelezen en aan incrementele hashfuncties gevoerd, zodat het geheugengebruik gelijk blijft en je ook bestanden van meerdere gigabytes kunt hashen. Op een gemiddelde computer haal je met SHA-256 een paar honderd megabyte per seconde.

Tekst, coderingen en regeleinden

Een hash wordt berekend over bytes, niet over tekens. Deze tool codeert tekst als UTF-8, de standaard op het web en in de meeste programmeertalen. Krijg je elders een ander resultaat, zoek dan naar verborgen verschillen: een regeleinde aan het eind (echo "abc" | sha256sum hasht abc\n; gebruik echo -n), Windows-regeleinden (\r\n) of een andere codering zoals UTF-16.

Veelgestelde vragen

Kan ik MD5 of SHA-1 gebruiken om wachtwoorden op te slaan?

Nee, en ook geen kale SHA-256. Deze functies zijn ontworpen om snel te zijn, dus een aanvaller kan miljarden pogingen per seconde testen. Wachtwoorden hebben een traag algoritme met salt nodig, zoals Argon2, bcrypt of scrypt.

Is MD5 nog nuttig?

Ja, om onbedoelde beschadiging op te sporen, dubbele bestanden te vinden of een oude lijst met checksums te controleren. Tegen opzettelijke manipulatie mag je er niet op vertrouwen, want iedereen kan twee verschillende bestanden met dezelfde MD5 maken.

Worden mijn bestanden geüpload?

Nee. De bestanden worden door je browser gelezen en gehasht. Er wordt niets naar een server gestuurd, dus je kunt ook vertrouwelijke documenten hashen.

Waarom komt mijn hash niet overeen met die van de opdrachtregel?

De invoer verschilt bijna altijd: een regeleinde aan het eind, spaties, regeleinden of tekstcodering. Controleer bij bestanden of de download volledig is. Eén ontbrekende byte geeft een totaal andere hash.

Wat is het verschil tussen uitvoer in hex en in Base64?

Het zijn twee manieren om dezelfde bytes te schrijven. Hexadecimaal is het gebruikelijke formaat voor checksums; Base64 is korter en wordt bijvoorbeeld gebruikt in attributen voor Subresource Integrity (sha256-…). Het vergelijkingsveld accepteert allebei.