Hashgenerator

Bereken MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b of BLAKE2s-digests van elke tekst of elk bestand — handig voor checksums, integriteitscontroles en cachesleutels. Plak een verwachte digest om die tegen uw invoer te verifiëren, of plak een onbekende hashreeks om te identificeren welk algoritme er waarschijnlijk uit komt. SHA-1/256/384/512 komen uit de eigen WebCrypto van uw browser; de rest zijn op zichzelf staande pure-JavaScript-implementaties, dus alles draait lokaal. Zie ook de Generator voor willekeurige getallen voor reeksen met een seed.
Draait volledig lokaal — er wordt niets geüpload. Invoer tot 200 MB.
Invoer: Algoritmen:
Uitvoerformaat: SHA-1 is verouderd — geef de voorkeur aan SHA-256/512, tenzij u het nodig heeft.
Digestregels hebben de vorm “ALGORITME  hash”, zodat u ze kunt kopiëren naar releasenotities of downloadmanifesten.
Plak de digest die een downloadpagina of manifest u heeft gegeven. De tool verdraagt hoofdletters, spaties, dubbele punten, voorvoegsels zoals sha256=, omhulsels zoals MD5 (file.exe) = en uitvoer van md5sum over meerdere regels, en vergelijkt die daarna met de algoritmen die u hierboven heeft aangevinkt.
Plak een onbekende hashreeks. De tool leest de lengte, de tekenset en de voorvoegsels, en somt de algoritmen op die hem kunnen hebben gemaakt — van een gewone hexdigest tot PHC-achtige wachtwoordhashes zoals $2b$… of $argon2id$….
Een algoritme kiezen:
SHA-256 is vandaag de verstandige standaard voor integriteitscontroles. SHA-512 is sterker en draait sneller op 64-bithardware, ten koste van langere uitvoer; SHA-384 is de middenoptie wanneer u een SHA-2-digest met verkorte lengte nodig heeft. SHA-3 is een onafhankelijk ontworpen NIST-standaard (geen SHA-2-upgrade) en het standaardantwoord wanneer u een algoritme wilt zonder gedeelde afstamming met SHA-2; Keccak-256 is de pre-standaardvariant die Ethereum en een paar andere systemen gebruiken, en verschilt van SHA3-256 in één padding-byte. BLAKE2b/BLAKE2s zijn snelle moderne hashes die voor softwaregebruik zijn ontworpen; RIPEMD-160 is een ouder ontwerp dat nog steeds in Bitcoin- en OpenPGP-contexten wordt gebruikt. SHA-1 en MD5 zijn cryptografisch gebroken voor vijandige invoer, maar blijven correct en breed gebruikt voor deduplicatie, verouderde systemen en niet-vijandige checksums — gebruik ze nooit waar een aanvaller de inhoud kan kiezen. Geen enkele hash is vandaag “post-kwantumbestendig” in de zin waarin kwantumcomputers eerst handtekeningen en sleuteluitwisseling bedreigen — het algoritme van Grover halveert alleen de effectieve hashlengte, dus SHA-256 zit al ruim boven de praktische grens. Hashes zijn deterministisch: dezelfde bytes geven altijd dezelfde digest, en dat is precies wat ze nuttig maakt om te controleren of een download of configuratiebestand intact is.
Op zoek naar de Chinese nationale hash?
SM3 (GB/T 32905-2016), de digest die is voorgeschreven in de Chinese commerciële cryptografie, valt niet onder deze pagina — het heeft een eigen tool met HMAC-SM3-ondersteuning op de pagina SM3-hashgenerator, naast de rest van de SM-suite: SM4 (blokcipher), SM2 (handtekeningen en versleuteling) en SM9 (identiteitsgebaseerde cryptografie).
Hashgenerator — elk algoritme vanaf nul uitgelegd
In één zin: een cryptografische hashfunctie is een eenrichtingsmixer — ze neemt een willekeurig aantal bytes en perst die tot een vingerafdruk van vaste lengte, zodat dezelfde invoer altijd dezelfde vingerafdruk geeft, maar de vingerafdruk u niet vertelt hoe de invoer weer kan worden opgebouwd. Deze pagina draait er elf volledig binnen het browsertabblad.

Elk algoritme hieronder wordt uitgelegd in dezelfde vier stappen: wat het in gewone woorden is, de intuïtie van hoe het werkt zonder formules, of u het vandaag nog moet gebruiken, en de fouten die mensen er het vaakst mee maken.

MD5

Wat het is. MD5 (1992) comprimeert elke invoer tot een vingerafdruk van 128 bits (32 hexadecimale tekens). Het is ontworpen om snel te zijn op de computers van de jaren negentig, en dat is het ook — precies daarom is het nog overal: downloadpagina's van software, caches voor bestandsdeduplicatie, oude databasesleutels.

Hoe het intuïtief werkt. De invoer wordt in blokken van 64 bytes gesneden. Elk blok wordt viermaal in een roterende status van 128 bits geroerd (vier iets verschillende mengrondes), en na het laatste blok wordt de status als digest afgedrukt. Het roeren bestaat uit optellingen, rotaties en tabelopzoekingen — toen goedkoop, nu goedkoop.

Moet u het gebruiken? Voor checksums waar niemand u probeert te bedriegen — het detecteren van een beschadigde download, het vinden van dubbele bestanden — ja, het meldt beschadiging nog steeds perfect. Voor alles met een tegenstander erin: nee; sinds 2004 kunnen onderzoekers in enkele seconden twee verschillende bestanden met dezelfde MD5 maken, en echte certificaatvervalsingen met MD5-botsingen gebeurden in 2008. Behandel het als een serienummer, niet als slot.

Veelgemaakte fouten. MD5 gebruiken voor wachtwoorden (veel te snel — zie de Wachtwoordhashgenerator voor wat daar hoort); een bestand vertrouwen omdat “de MD5 klopt” terwijl de aanvaller de MD5 ook heeft gepubliceerd; en de hele regel MD5 (bestand) = hash plakken in plaats van alleen de hash — het vak Verifiëren hierboven accepteert beide.

SHA-1

Wat het is. SHA-1 (1995, NSA) levert een digest van 160 bits (40 hex-tekens). Twintig jaar lang was het de standaard integriteitshash van Git, TLS-certificaten en PGP-handtekeningen.

Hoe het intuïtief werkt. Hetzelfde familierecept als MD5, maar met een status van 160 bits, 80 mengrondes per blok van 64 bytes, en een bredere reeks bewerkingen. De extra rondes moesten de mixer moeilijker maken om te reverse-engineeren.

Moet u het gebruiken? Nee, voor alles met een tegenstander. De theoretische doorbreking werd in 2017 praktisch toen Google twee verschillende PDF's met identieke SHA-1-waarden maakte (de SHAttered-aanval, ongeveer 6500 CPU-jaren). Git slaat objecten nog steeds onder SHA-1 op, maar behandelt het alleen als identificatie, en heeft sindsdien botsingsdetectie toegevoegd. Voor nieuw werk gebruikt u SHA-256 of SHA-3.

Veelgemaakte fouten. Geloven dat 160 bits “nog steeds lang genoeg is” — de doorbreking gaat over de interne structuur, niet over brute kracht; en RIPEMD-160 verwarren met SHA-1 omdat beide 40 hex-tekens lang zijn (het identificatievak hierboven onderscheidt ze).

SHA-2: SHA-256, SHA-384 en SHA-512

Wat het is. De SHA-2-familie (2001, NSA) is het werkpaard van moderne integriteitscontrole. SHA-256 levert 256 bits (64 hex-tekens), SHA-512 levert 512 bits, en SHA-384 is SHA-512 met het resultaat afgekapt tot 384 bits — nuttig wanneer een protocol een kortere tag voorschrijft.

Hoe het intuïtief werkt. Blokken van 64 bytes (of 128 bytes voor de varianten van 512 bits) worden via 64 (of 80) rondes van optel-roteer-mengstappen tot een status van 8 woorden gevouwen. Anders dan bij MD5 rekt het schema eerst elk blok uit tot een uitgebreide buffer, en dat is wat de soort aanval verijdelde die MD5 en SHA-1 brak. Een interessant detail: op 64-bit-CPU's is SHA-512 sneller dan SHA-256, omdat het per ronde twee keer zoveel gegevens verwerkt met 64-bitsrekenkunde.

Moet u het gebruiken? Ja — SHA-256 is vandaag het standaardantwoord voor bestandschecksums, codeondertekening en certificaatvingerafdrukken, zonder bekende praktische doorbreking na twee decennia analyse. Gebruik SHA-384/512 wanneer u meer marge wilt of wanneer het platform ze sneller draait.

Veelgemaakte fouten. SHA-256 alleen voor wachtwoorden gebruiken — het is een snelle hash, en snelheid is daar de vijand (gebruik bcrypt/scrypt/Argon2id); en de digestlengte verwarren met sterkte voor botsingsbestendigheid tegen tegenstanders — de lengte bepaalt alleen het plafond.

SHA-3 (SHA3-256 / SHA3-512) en Keccak-256

Wat het is. SHA-3 (2015, gestandaardiseerd uit de Keccak-inzending door Bertoni, Daemen, Peeters en Van Assche) is de derde NIST-hashstandaard. Het deelt niets met de interne opbouw van SHA-2 — het is precies gekozen als onafhankelijke reserve voor het geval SHA-2 ooit valt.

Hoe het intuïtief werkt. In plaats van blokken door een kleine status te roeren, “weekt en perst” Keccak herhaaldelijk: de invoer wordt bit voor bit in een spons van 5×5×64 bits opgenomen, de hele spons wordt door een vaste permutatie geschud (24 rondes van bitsgewijze bewerkingen over de volledige status), en daarna worden de digestbits eruit geperst. Het spons-beeld is het hele idee: capaciteitsbits worden nooit uitgevoerd, en zij maken de functie eenrichtings.

Keccak-256 versus SHA3-256. Ze verschillen in precies één padding-byte. De oorspronkelijke inzending van het Keccak-team paddde het laatste blok met 0x01; NIST wijzigde de standaardpadding naar 0x06 (domeinscheiding die Keccak in de SHA-2-tijd gebruikt). Ethereum nam de oorspronkelijke padding over, dus zijn “keccak256” verschilt bij elke invoer van standaard SHA3-256. Deze pagina biedt beide, apart aanvinkbaar.

Moet u het gebruiken? Ja — ofwel als uw primaire keuze wanneer het beleid een niet-SHA-2-algoritme vraagt, of waar het ecosysteem het al spreekt. Veelgemaakte fouten: aannemen dat SHA3-256 en Keccak-256 inwisselbaar zijn (dat zijn ze niet — vergelijk de twee rijen die deze pagina voor dezelfde invoer maakt); en aannemen dat “SHA-3” SHA-2 vervangt — beide zijn veilig, SHA-2 blijft het breder ingezette.

RIPEMD-160

Wat het is. RIPEMD-160 (1996, het RIPE-consortium van Europese academici, versterkt door Dobbertin, Bosselaers en Preneel) levert 160 bits. Het is een volledig Europees ontwerp, bewust onafhankelijk van de door de NSA ontworpen SHA-familie.

Hoe het intuïtief werkt. Elk blok van 64 bytes wordt verwerkt door twee parallelle lijnen van 80 rondes met verschillende constanten en rotatiehoeveelheden; aan het eind worden de twee lijnen en de oude status gecombineerd. De structuur met twee sporen was de manier van de ontwerpers om de differentiële aanvallen te weerstaan die andere hashes uit de jaren negentig braken.

Moet u het gebruiken? In de praktijk overleeft het vooral binnen andere systemen: Bitcoin-adressen hashen hun publieke sleutels met RIPEMD-160(SHA-256(pk)), oudere OpenPGP-sleutels bieden het als hashoptie, en het is de traditionele hash voor BitTorrent v1-stukken naast SHA-1. Er is geen praktische botsingsaanval, maar de grootte van 160 bits geeft het de kleinste veiligheidsmarge op deze pagina. Voor nieuw zelfstandig gebruik kiest u SHA-256 of SHA-3.

Veelgemaakte fouten. Geloven dat de twee parallelle lijnen het “twee keer zo sterk” maken — de uitvoergrootte is wat de botsingsbestendigheid beperkt; en het verwarren met SHA-1 (dezelfde lengte van 40 hex-tekens; het identificatievak hierboven toont beide mogelijkheden naast elkaar).

BLAKE2b-512 en BLAKE2s-256

Wat het is. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn en Winnerlein) is een hash die is ontworpen voor softwaresnelheid: BLAKE2b richt zich op 64-bitplatforms met uitvoer tot 512 bits, BLAKE2s op 32-bitplatforms met uitvoer tot 256 bits.

Hoe het intuïtief werkt. Het stamt af van de SHA-3-finalist BLAKE, waarvan de kern een gesleutelde permutatie is die is ontleend aan de stroomcipher ChaCha: een 4×4-matrix van woorden wordt geschud door afwisselend kolom- en diagonaalmengstappen — als eerst van boven naar beneden en daarna langs de diagonalen schudden in een rooster — voor 12 (BLAKE2b) of 10 (BLAKE2s) rondes per blok. Omdat die stappen mooi op CPU-instructies passen, is BLAKE2 vaak sneller dan MD5 en biedt het een beveiliging die vergelijkbaar is met SHA-3.

Moet u het gebruiken? Ja — het is een volledig moderne, ongebroken ontwerp, populair in software waar prestaties tellen (pakketintegriteit in sommige ecosystemen, adresseerbare opslag op inhoud, deduplicatie van back-ups) en als snelle MAC. Op deze pagina geeft BLAKE2b-512 de langste digests en is BLAKE2s-256 de compacte moderne optie.

Veelgemaakte fouten. Denken dat “sneller moet zwakker betekenen” — BLAKE2 is sneller door ontwerp, niet door hoeken af te snijden; en niet beseffen dat BLAKE2 ook een sleutel (waarmee het een MAC wordt) of een personalisatiestring accepteert — deze pagina gebruikt het altijd in het gewone, ongesleutelde modus.

De vakken Verifiëren en Identificeren lezen

Verifiëren. Het verificatievak normaliseert wat u ook plakt — hoofdletters of kleine letters, dubbele punten na elke twee cijfers, een voorvoegsel sha256=, het BSD-omhulsel SHA256 (bestand) = hash, een GNU md5sum-regel met de bestandsnaam na de hash, losse \r\n — en herberekent daarna elk aangevinkt algoritme over uw huidige invoer (tekst of het gekozen bestand) en meldt elk algoritme dat overeenkomt. Een groene match betekent “deze bytes zijn precies wat de uitgever heeft gehasht”; rood betekent dat geen van de aangevinkte algoritmen het heeft voortgebracht — vink meer algoritmen aan, of controleer of het geplakte stuk is afgekapt.

Identificeren. Het identificatievak hasht niets; het leest de vorm van de tekenreeks. De lengte beperkt de kandidaten: 32 hexadecimale tekens kunnen MD5 zijn, 40 kunnen SHA-1 of RIPEMD-160 zijn, 64 kunnen SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256 zijn, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Voorvoegsels onthullen wachtwoordhashes ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — dat is een andere soort (zie de Wachtwoordhashgenerator) en wordt bewust niet door deze pagina berekend. Een tekenreeks met +, / en = waarvan de lengte een veelvoud van 4 is, is waarschijnlijker Base64-gecodeerde gegevens dan een hexdigest; de tool decodeert hem en meldt de bytelengte die daarbij hoort.

Wat identificatie wel en niet kan vertellen. Lengte en tekenset zijn vingerafdrukken van het formaat, geen bewijs van het algoritme: twee tekenreeksen van 64 hex-tekens kunnen uit SHA-256 of uit afgekapte SHA-512 komen. Het identificatievak rangschikt de mogelijkheden; het vak Verifiëren is het vak dat bewijst met welk algoritme uw bytes werkelijk overeenkomen.

Alle elf in één oogopslag
Algoritme Digest Uitgevonden Digest van “The quick brown fox jumps over the lazy dog”
MD5128 bits19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bits19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bits2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bits2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bits200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bits201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bits201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bitsvóór 20154d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bits199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bits2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bits2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Elke digest in de tabel hierboven wordt geproduceerd door de engines op deze pagina zelf — vink alle algoritmen aan, klik op Voorbeeld en vergelijk. De rijen SHA-3, Keccak, RIPEMD-160 en BLAKE2 komen uit de zelf gehoste kern crypto-shared.js die op alle cryptotools van deze site wordt gebruikt.

Veelgestelde vragen

Welk vak kan ik vertrouwen voor een download? Het vak Verifiëren, met SHA-256 aangevinkt — de meeste uitgevers ondertekenen tegenwoordig SHA-256 of SHA-512. Het vak Identificeren noemt alleen kandidaten; het bewijst nooit iets over uw bestand.

Waarom staat Keccak-256 überhaupt in de lijst? Omdat Ethereum, Swarm en een paar grootboeksystemen de pre-standaard padding hebben gestandaardiseerd. Als u een Ethereum-keccak256 verifieert, moet u die rij gebruiken, niet SHA3-256.

Kunnen twee verschillende invoeren dezelfde digest delen? Theoretisch wel — oneindig veel invoeren worden afgebeeld op een eindige verzameling digests (het duivenhokprincipe). In de praktijk is het vinden van zo'n paar voor het warmtedood van het heelal wat “botsingsbestendigheid” betekent, en elk algoritme hierboven, behalve MD5 en SHA-1, staat nog steeds overeind.

Zijn hashes versleuteling? Nee. Versleuteling is omkeerbaar met een sleutel; een hash is een eenrichtingsmixer. Niets op deze pagina kan terug worden “ontsleuteld” tot uw tekst — en dat is een kenmerk, geen beperking.