Hashgenerator

MD5, SHA-1, SHA-256, SHA-512 en CRC-32 van elke tekst, berekend in je browser.

Draait volledig in je browser. Er wordt niets geüpload, gelogd of opgeslagen.

Een hash maakt van elke hoeveelheid tekst een korte vingerafdruk met een vaste lengte. Dezelfde invoer geeft altijd dezelfde digest, en één teken ergens veranderen verandert het hele resultaat; daardoor is het nuttig om te weten of twee dingen identiek zijn zonder ze naast elkaar te vergelijken.

Hoe het werkt

De tekst wordt eerst als UTF-8 gecodeerd en daarna worden die bytes gehasht. Dat is van belang voor alles boven ASCII: é is twee bytes, dus de digest ervan is niet de digest van een é van één byte in een andere codering. Als twee tools het oneens zijn over een string met accenten, zit het verschil bijna altijd hier en niet in het algoritme.

Alles wordt hier, in de pagina, berekend. De vijf algoritmen zijn met de hand geschreven in plaats van uit de cryptografische API van de browser gehaald, om drie redenen: die API is niet beschikbaar via onversleuteld HTTP, weigert botweg MD5 te doen, en is asynchroon terwijl de rest van deze tools dat niet is.

De digests worden getoond in hexadecimaal met kleine letters, zoals commandoregeltools ze afdrukken. De schakelaar voor hoofdletters is er omdat sommige systemen ze andersom opslaan, en met het oog vergelijken tussen de twee is een goede manier om een verschil te zien dat niet bestaat.

Voorbeelden

Geval Invoer Resultaat
SHA-256 van een korte string hello 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
MD5 van dezelfde string hello 5d41402abc4b2a76b9719d911017c592
Eén teken anders, en er blijft niets over hellp d0763edaa9d9bd2a9516280e9044d885

Veelgestelde vragen

Kan ik de oorspronkelijke tekst terughalen uit een hash?

Nee, en geen enkele tool kan dat. Een hash is geen versleuteling: de informatie is weg, en de digest van één teken en die van een roman zijn even lang. Sites die aanbieden een hash te “ontsleutelen”, zoeken hem op in een tabel met digests die iemand al heeft berekend uit gangbare wachtwoorden, en dat werkt alleen voor invoer die in die lijst stond.

Moet ik hiermee een wachtwoord hashen?

Nee. Wachtwoorden hebben een algoritme nodig dat ontworpen is om traag te zijn — bcrypt, scrypt of Argon2 — met een willekeurige salt voor elk wachtwoord, berekend op je server. Deze vijf zijn snel, en dat is precies de verkeerde eigenschap: een grafische kaart probeert miljarden MD5-kandidaten per seconde. Niets van wat je hier typt verlaat je browser, maar het resultaat zou nog steeds zijn wat je niet moet opslaan.

Wat betekent “gebroken” bij MD5 en SHA-1?

Dat iemand met opzet twee verschillende invoeren met dezelfde digest kan maken, en dat is voor allebei aangetoond. Geen van beide kan dus bewijzen dat een bestand het bestand is dat je beloofd werd, als iemand een reden had om het te vervangen. Beide zijn nog prima voor waar ze het meest voor worden gebruikt: zien dat een download beschadigd is aangekomen, of dat twee bestanden kopieën zijn.

Waarom komt mijn digest niet overeen met die van een andere tool?

Bijna altijd door een regeleinde aan het eind of een andere tekencodering. Een bestand hashen dat eindigt op een regeleinde is niet hetzelfde als de tekst zonder dat regeleinde hashen, en elke byte telt. Deze tool hasht precies de tekens in het vak, gecodeerd als UTF-8, en niets anders.

Goed om te weten

  • Alles gebeurt in je browser. Wat je plakt, wordt niet geüpload, niet gelogd en niet opgeslagen.

Bronnen

Alle tools in Code