Naar de inhoud
HexSlate

Hash Generator

Tekst om te hashen0 B

Optioneel. Plak de digest van een downloadpagina, of de hele regel uit een checksum-bestand. Het algoritme wordt uit de lengte afgeleid.

Nog geen digests

Typ tekst of kies een bestand, en elk aangevinkt algoritme wordt in één keer berekend.

0 code-eenheden0 B als UTF-8

Kan een MD5-hash teruggedraaid of ontsleuteld worden?

Nee, en ook niet door een site die beweert van wel. Een hash gooit informatie weg: één teken en een schijfimage van 50 GB leveren allebei 128 bits MD5, dus miljarden invoeren komen op dezelfde digest uit en het origineel is zelfs in principe niet terug te halen. Een "hash decrypter" is een opzoektabel die vooraf voor veelgebruikte wachtwoorden is uitgerekend, en daarom verslaat een salt per gebruiker hem.

Is MD5 gebroken? En SHA-1?

Allebei gebroken tegen een aanvaller en allebei nog prima als checksum. MD5 sneuvelde in 2004 op een praktische collision; SHA-1 in 2017, toen Google en CWI Amsterdam SHAttered publiceerden, twee PDF's met dezelfde digest. Voor geen van beide bestaat een praktische preimage-aanval, dus niemand kan een bestaand bestand pakken en er een ander bij maken dat erop past, en een download die klopt met een gepubliceerde MD5 is vrijwel zeker intact. Gebruik voor handtekeningen, certificaten of alles waar een aanvaller de invoer kiest SHA-256 of beter.

Bewaar hier nooit wachtwoorden mee

SHA-256 is het verkeerde gereedschap voor een wachtwoorddatabase omdat het te snel is: een moderne GPU rekent er miljarden per seconde uit, en dat is het tempo waarop een gestolen tabel met ongezouten hashes gekraakt wordt. Wachtwoordopslag wil een trage, geheugenintensieve functie: Argon2id, scrypt of bcrypt, elk met een salt per gebruiker en zo afgesteld dat één controle een merkbaar deel van een seconde kost.

Twee die niet zijn wat ze lijken

SHA-384 is SHA-512 afgekapt op 48 bytes, en juist die afkapping weerstaat de length-extension-aanval waar volledige SHA-256 en SHA-512 wel voor openstaan. CRC32 is helemaal geen cryptografische hash, maar de foutdetectiecode in zip, gzip en PNG-chunks: hij vangt toevallige beschadiging betrouwbaar en een opzettelijke wijziging helemaal niet, want een gekozen collision is rekenwerk in plaats van brute kracht.

Veelvoorkomende problemen

  • De commandoregel geeft een andere digest. Bijna altijd een newline aan het eind: echo hello | md5sum hasht zes bytes, geen vijf. Gebruik printf %s hello | md5sum.
  • Hetzelfde bestand hasht anders op Windows en Linux. CRLF-regeleinden kosten een extra byte per regel, en autocrlf van Git herschrijft ze bij het uitchecken, dus het bestand op schijf is niet het bestand in de repository. Een UTF-8 BOM doet hetzelfde.
  • Niet-ASCII-tekst hasht elders anders. Een hash gaat over bytes, dus de codering bepaalt het antwoord. Deze pagina gebruikt UTF-8; een tool die UTF-16 of Latin-1 gebruikt geeft een andere digest voor dezelfde zichtbare tekst.

Veelgestelde vragen

Wat is het verschil tussen hashen en versleutelen?

Versleutelen gaat twee kanten op en heeft een sleutel. Hashen gaat één kant op en heeft er geen, en levert een vingerafdruk van vaste lengte om mee te vergelijken, niet om iets mee terug te halen. Wil je de data terug, dan wil je versleuteling.

Wordt mijn bestand ergens geüpload?

Nee, het wordt op je eigen machine gelezen en gehasht, zonder netwerkverzoek. Wat je hasht blijft ook uit de URL, want in dit vak worden wachtwoorden en API-sleutels geplakt en een query string belandt in de browsergeschiedenis en in de Referer-header.

Welk algoritme moet ik voor een checksum gebruiken?

SHA-256, tenzij iets anders de keuze bepaalt. Het is snel, het zit overal, en er bestaat geen praktische collision voor. MD5 en SHA-1 zijn nog prima om toevallige beschadiging te vinden, en daarom publiceren downloads ze nog, maar geen van beide overleeft een aanvaller die twee bestanden wil laten matchen.

Waarom zit CRC32 in een hashtool?

Omdat het een andere vraag beantwoordt, en mensen komen hier met die vraag. CRC32 is een foutdetectiecode, geen hash: 32 bits, met opzet triviaal te laten botsen, en gebouwd om transportschade te vangen. ZIP-archieven en PNG-chunks gebruiken het precies daarvoor. Gebruik het nooit waar je een hash bedoelt.