RevealTheme logo

Hashgenerator (MD5 / SHA)

Genereer cryptografische hashes: MD5, SHA-1, SHA-256, SHA-384 en SHA-512. Draait in uw browser via de Web Crypto API.

Wat zijn cryptografische hashes en wanneer hebt u die nodig?

Een cryptografische hashfunctie is een deterministisch algoritme dat elke invoer (een paar bytes, een bestand van meerdere gigabytes of de volledige Engelstalige Wikipedia) omzet in een uitvoer met een vaste lengte, het 'overzicht' (digest) of de 'hash' genoemd. SHA-256 produceert 256 bits (64 hexadecimale tekens); SHA-512 produceert 512 bits; MD5 produceert 128 bits. Vier eigenschappen definiëren een 'cryptografische' hash, in tegenstelling tot een niet-cryptografische (zoals CRC32): determinisme (dezelfde invoer → dezelfde hash, altijd), het lawine-effect (één bit wijzigen verandert ongeveer de helft van de uitvoerbits), preimage-bestendigheid (u kunt de hash niet omkeren om de invoer te herstellen) en botsingsbestendigheid (u kunt geen twee invoeren vinden die dezelfde hash opleveren). Wanneer een hashfunctie wordt gekraakt, vallen meestal deze laatste twee eigenschappen weg: de botsingsaanvallen tegen MD5 (2004) en SHA-1 (2017) maakten ze ongeschikt voor beveiligingsdoeleinden, hoewel ze nog steeds bruikbaar zijn voor niet-vijandige integriteitscontroles, zoals controlesommen van bestanden. Gebruik SHA-256 of SHA-512 voor al het nieuwe beveiligingswerk. Deze tool gebruikt de Web Crypto API van de browser (crypto.subtle.digest), die op moderne apparaten hardwarematig versneld is, en produceert byte voor byte identieke uitvoer aan die van OpenSSL, de hashlib-module van Python en de crypto-module van Node.

Veelvoorkomende toepassingen

  • Controleer of een gedownload bestand overeenkomt met de door de uitgever vermelde SHA-256 (Linux-ISO's, releases van beveiligingstools).

  • Genereer een content-adresseerbare identifier voor cachesleutels (hash van inhoud → stabiele URL).

  • Maak een deduplicatiesleutel voor het opslaan van bestanden (overeenkomende hash = identiek bestand).

  • Bouw verificatie van webhook-handtekeningen – HMAC-SHA256 van de payload met een gedeeld geheim.

  • Genereer Git-achtige content-hashes (SHA-1 voor tree-/blob-identifiers).

  • Valideer de integriteit van een databaserij door sleutelkolommen te hashen en de hash op te slaan.

Veelgestelde vragen

Waarom is MD5 verouderd voor beveiliging?
Cryptografen hebben manieren gevonden om twee verschillende invoeren te construeren die dezelfde MD5 opleveren. Zodra botsingen vindbaar zijn, is MD5 geen betrouwbaar integriteitssignaal meer in vijandige scenario's (iemand zou een bestand kunnen verwisselen en een ander bestand met dezelfde hash kunnen genereren). Voor niet-vijandige controlesommen (is het bestand correct gedownload?) werkt MD5 nog steeds prima; het is alleen onveilig voor digitale handtekeningen of alles wat door een aanvaller wordt beïnvloed.
Kunnen hashes worden omgekeerd?
Niet rechtstreeks: cryptografische hashes zijn eenrichtingsfuncties. Maar: (1) voor korte invoeren of invoeren met lage entropie (wachtwoorden, gangbare zinsdelen) kan een aanvaller de hashes van elke waarschijnlijke invoer vooraf berekenen (rainbow tables) en de uwe opzoeken. Daarom gebruikt wachtwoord-hashing unieke, willekeurige salts. (2) Voor invoeren met willekeurige lengte en hoge entropie (willekeurige sleutels, bestandsinhoud) is omkering computationeel onhaalbaar.
Wat is het verschil tussen SHA-256 en HMAC-SHA256?
SHA-256 is een eenvoudige hash: iedereen die over de invoer beschikt, kan dezelfde hash berekenen. HMAC-SHA256 is een hash met sleutel: u hebt een gedeeld geheim nodig om die te berekenen. Webhooks gebruiken HMAC omdat de verificateur wil weten 'is dit gemaakt door iemand die het geheim kent?', en niet alleen 'komt de payload overeen met een bekende waarde?'. Gebruik onze HMAC-generator voor de variant met sleutel.
Wanneer moet ik SHA-512 in plaats van SHA-256 gebruiken?
SHA-512 heeft meer uitvoerbits (512 tegenover 256), wat botsingsaanvallen theoretisch moeilijker maakt. Maar SHA-256 is al veilig tot ver buiten elke redelijke termijn (effectieve sterkte tegen botsingen van 2^128). SHA-512 is op 64-bits hardware soms sneller vanwege de bredere interne bewerkingen. Gebruik standaard SHA-256; gebruik SHA-512 als u een concrete reden hebt.
Waarom verschilt mijn SHA-hash van die van een andere tool?
Drie waarschijnlijke oorzaken: (1) Verschillende invoercodering: de bytes waarop de hash wordt toegepast, moeten overeenkomen. UTF-8, UTF-16 of Latin-1 produceren verschillende hashes voor dezelfde zichtbare tekst. Deze tool codeert de invoer als UTF-8. (2) Afsluitende regeleinde: sommige tools voegen een regeleinde toe en andere niet. (3) BOM (byte order mark): een verborgen voorvoegsel van drie bytes dat sommige editors aan UTF-8-bestanden toevoegen.
Is het veilig om te gebruiken met gevoelige gegevens?
Ja: de berekening van de hash gebeurt lokaal in uw browser via Web Crypto. De invoer verlaat nooit uw apparaat. De hashes zelf zijn niet 'gevoelig' in de zin dat ze de invoer niet onthullen (uitgaande van voldoende entropie), maar als u de hash berekent van gegevens met lage entropie (zoals wachtwoorden zonder salt), houd er dan rekening mee dat iedereen die de hash ziet, deze via rainbow tables zou kunnen omkeren.

Gerelateerde tools