Develop Tools

Hash Generator & Controlesom

Haal in één keer MD5, SHA-1, SHA-256, SHA-384 en SHA-512 voor tekst en bestanden. Controleer of een gedownload bestand overeenkomt met de officiële controlesom om te bevestigen dat het niet is aangetast. Alles lokaal, niets verlaat uw browser.

5 algoritmen tegelijk Tekst + bestandscontrolesom Lokaal, geen upload Directe resultaten
Tekens UTF-8 bytes

KENMERKEN

Alle vijf hashes op één pagina

Van snelle vingerafdrukken tot veilige handtekeningen — elke hash die ontwikkelaars, operators en downloadverificatie nodig hebben.

01

Vijf algoritmen

MD5, SHA-1, SHA-256, SHA-384 en SHA-512 samen weergegeven met uitvoerbitlengtes — geen wisseling meer tussen hulpmiddelen.

02

Real-time berekening

Tekst-hashes terwijl u typt, geen knop nodig. Resultaten in monospace — klik op een rij om te kopiëren.

03

Bestandsintegriteitscontrole

Sleep een installer, schijfkopie of archief erin en vergelijk met de officiële controlesom om een niet-aangetaste download te bevestigen.

04

Lokaal, geen upload

SHA-familie gebruikt de ingebouwde Web Crypto API van de browser. Tekst en bestanden verlaten uw machine nooit — gevoelige content is geen probleem.

05

UTF-8-consistent

Tekst wordt gehasht als UTF-8-bytes, dus de resultaten komen exact overeen met md5sum, PHP md5() en Python hashlib.

06

Kopiëren met één klik

Kopieer elke hash afzonderlijk, of allemaal in het standaard checksums-formaat, klaar om in een terminal te plakken.

Wat u moet weten over hashes

Het idee is simpel, maar de verkeerde hash gebruiken voor de verkeerde taak is een echte beveiligingsfout.

Wat zijn MD5 en SHA-1 precies?

MD5 (Message-Digest Algorithm 5) werd ontworpen door Ronald Rivest aan MIT en gepubliceerd in 1992 als RFC 1321, die een vaste 128-bits (32 hexadecimale tekens) digest produceerde als opvolger van MD4. SHA-1 werd ontworpen door de Amerikaanse National Security Agency en gepubliceerd in 1995 als federale standaard FIPS 180-1, die 160 bits produceerde. Beide werden de meest gebruikte hashalgoritmen in de daaropvolgende twee decennia — gebruikt voor bestandssomcontroles, wachtwoordopslag, digitale handtekeningen en Git-commit-ID's. Merk op dat ze nog steeds correcte digesten produceren; 'onveilig' betekent dat hun collision-weerstand is gebroken, niet dat hun uitvoer verkeerd is.

Zijn hashing, encryptie en codering hetzelfde?

Nee — ze lossen verschillende problemen op. Codering (zoals Base64 of URL-codering) is een omkeerbare formaattransformatie die iedereen kan terugdraaien, zonder beveiliging. Encryptie is omkeerbaar met een sleutel: plaintext wordt ciphertext en de juiste sleutel ontsleutelt het. Hashing is eenrichtingsverkeer, heeft geen sleutel en het origineel kan niet uit de digest worden teruggevonden — het wordt gebruikt voor vingerafdrukken, integriteitscontroles en handtekeningen. Twee veelvoorkomende misverstanden: Base64 beschouwen als 'encryptie', en zeggen dat een wachtwoord 'versleuteld met MD5' is — dat is hashing, en dat is ook nog eens een onveilige manier om wachtwoorden op te slaan.

Waarom kan een hash niet worden teruggedraaid naar het origineel?

Een hash is een eenrichtingsfunctie: invoer van elke lengte wordt gecomprimeerd tot een digest van vaste lengte, waarbij de meeste informatie verloren gaat. Net zoals je geen zin kunt reconstrueren uit het aantal woorden, kan het origineel niet uit de digest worden afgeleid. Beveiligde algoritmen zijn speciaal ontworpen om deze terugdraaiing computationeel onhaalbaar te maken.

Zijn MD5 en SHA-1 nog bruikbaar?

Om te controleren of een bestand per ongeluk is beschadigd tijdens transport — ja, elke onbedoelde bytewijziging verandert vrijwel altijd de MD5. Maar nooit voor beveiliging: praktische collision-aanvallen bestaan voor beide (onderzoekers kunnen twee verschillende bestanden maken met dezelfde MD5 onder hun controle). Gebruik SHA-256 of hoger voor wachtwoorden, handtekeningen en certificaten.

Waarom verschilt mijn hash van die van een andere tool voor dezelfde tekst?

Drie gebruikelijke oorzaken: ① andere tekencodering (deze tool gebruikt altijd UTF-8; oudere tools gebruiken mogelijk GBK of Latin-1); ② een afsluitende nieuwe regel — de opdrachtregel echo voegt er standaard een toe (gebruik echo -n); ③ een onbedoelde spatie of onzichtbaar teken bij kopiëren. Hashes zijn gevoelig voor elke enkele byte, dus een byte te veel of te min verandert het resultaat volledig.

Waarom kunnen wachtwoorden niet als plain MD5/SHA-256 worden opgeslagen?

Gewone hashes zijn snel. Met een gelekte hashtabel kunnen aanvallers miljarden gissingen per seconde doen, en rainbow tables keren veelgebruikte wachtwoorden onmiddellijk terug. Wachtwoorden hebben opzettelijk trage, geheugenintensieve algoritmen (bcrypt, scrypt, Argon2) nodig met een unieke zoutwaarde per wachtwoord, wat brute force onaantrekkelijk duur maakt.

Hoe controleer ik de integriteit van een gedownload bestand?

Zoek de checksum die op de officiële site wordt gepubliceerd (meestal SHA-256), sleep het gedownloade bestand naar het tabblad "Bestandschecksum" hier en plak de officiële waarde in het vak boven de resultaten. De tool detecteert het algoritme aan de lengte van de waarde en kleurt de bijbehorende rij groen als de bytes van het bestand exact overeenkomen met wat de uitgever heeft vrijgegeven; rood betekent beschadiging of vervanging door een man-in-the-middle-vijand — voer het bestand niet uit.

Welke van de vijf algoritmen moet ik gebruiken

Kies op basis van het scenario. Nieuwere algoritmen produceren langere samenvattingen, zijn beter bestand tegen aanvallen en kosten iets meer om te berekenen.

Algoritme Geïntroduceerd Uitvoerlengte Beveiliging Typisch gebruik
MD5 1992 128 bits (32 tekens) Verbroken; praktische collissies mogelijk Niet-beveiligende vingerafdrukken, deduplicatie, legacy-compatibiliteit
SHA-1 1995 160 bits (40 tekens) Praktische collissies mogelijk sinds 2017 Git-historie-ID’s en andere legacy-systemen; niet voor nieuw beveiligingsgebruik
SHA-256 2001 256 bits (64 tekens) Vandaag de dag veilig Bestandschecksums, handtekeningen, TLS-certificaten, blockchains — de universele standaard
SHA-384 2001 384 bits (96 tekens) Veilig Afgeknotte SHA-512 voor complianceregimes die 384 bits vereisen
SHA-512 2001 512 bits (128 tekens) Veilig Handtekeningen met hoge zekerheid; vaak sneller dan SHA-256 op 64-bit CPU's

"Veilig" betekent dat er tot op heden geen praktische publieke collissieaanval mogelijk is. Gebruik bcrypt/Argon2 voor wachtwoordopslag, ongeacht de keuze van de hash.

Checksums: hoe een gedownload bestand daadwerkelijk te verifiëren

Waar die MD5- of SHA-256-tekenreeks op een downloadpagina voor dient, hoe je deze vergelijkt en waarmee je hem vergelijkt — allemaal in één sectie.

Waarom überhaupt verifiëren

Het bestand op jouw schijf is niet noodzakelijkerwijs het bestand op de server. Met een checksumvergelijking van tien seconden bescherm je je tegen drie soorten problemen:

Beschadiging tijdens transport

Grote bestanden bij hervatte downloads op onbetrouwbare netwerken krijgen vaak onbedoelde bytes; het oplossen van problemen met een defect installatieprogramma duurt veel langer dan tien seconden.

Niet-gesynchroniseerde spiegelservers

Veel downloads komen daadwerkelijk van spiegelservers of CDN’s, waar synchronisatietragheid of cachesstoringen je een verouderde release kunnen bezorgen — of een half bestand.

Opzettelijke manipulatie

Wanneer een downloadbron wordt gehackt of een openbaar netwerk wordt gekaapt, kunnen bestanden achterdeurcode bevatten. In 2016 werd de Linux Mint-site gehackt en werden de downloadlinks vervangen door een ISO met achterdeurcode — de eerste reactie van het project was iedereen dringend te vragen de checksum te controleren.

Wat is een checksum

De uitgegever heeft het bestand gehasht op hun server en plaatst het resultaat op de downloadpagina; nadat je hebt gedownload, has je het opnieuw lokaal. Als beide strings elk karakter overeenkomen, zijn de bytes van het bestand precies wat de uitgegever heeft vrijgegeven – geen beschadigd of gewijzigd bestand. De controle is gevoelig voor elke byte: één enkele byte verandert en de waarde is compleet anders. In grote lijnen omvatten checksums ook eenvoudigere schema’s zoals CRC32 die alleen accidentele beschadiging detecteren, terwijl cryptografische hashes zoals MD5/SHA ook bescherming bieden tegen opzettelijke vervalsing.

Controleer een bestand in drie stappen

  1. 1
    Haal de officiële checksum op

    Zoek op de downloadpagina de gepubliceerde MD5-/SHA-256-waarde (vaak aangeduid als "checksum" of meegeleverd als .sha256-bijbestand) en kopieer de volledige string.

  2. 2
    Sleep het bestand en plak het

    Ga naar het tabblad "Bestandssom" hierboven, sleep het gedownloade bestand ernaartoe en plak de checksum in het vak boven de resultaten.

  3. 3
    Lees het oordeel op kleur

    De tool detecteert het algoritme op basis van de lengte van de waarde: groen betekent dat het bestand exact overeenkomt met de officiële release en veilig is om te gebruiken; rood betekent dat het mogelijk beschadigd of gewijzigd is – voer het niet uit.

Checksum’s lezen op officiële sites

Downloadpagina’s schrijven checksums in vele stijlen, maar allemaal komen neer op twee elementen: de hash-waarde en de bestandsnaam. Deze drie indelingen zijn het meest gebruikelijk – bij plakken neem je alleen het hash-gedeelte (de tool negeert automatisch spaties en regel breaks):

# 1. Enkele regel: alleen de waarde
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. sha256sum-indeling: waarde + twee spaties + bestandsnaam (een SHA256SUMS-manifest bevat vele zulke regels)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. BSD-indeling: Algoritme (bestandsnaam) = waarde
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 of SHA-256

Controleer wat de officiële site levert, maar als je een keuze hebt: MD5 is helemaal voldoende tegen accidentele beschadiging tijdens overdracht (elke onbedoelde wijziging verandert vrijwel altijd de MD5). Tegen opzettelijke wijzigingen – beveiligingssoftware, certificaten, ondertekende pakketten – heb je SHA-256 of sterker nodig, omdat praktische collisieaanvallers aanvallers in staat stellen twee verschillende bestanden met dezelfde MD5 te maken. Dit verhaal vind je onder "beveiligingsgeschiedenis" hieronder.

Controle in plaats daarvan via de opdrachtregel

Op Linux en macOS accepteren checksum-tools -c om een volledig manifest automatisch te controleren – geen handmatige vergelijking nodig. De ingebouwde opdrachten van Windows berekenen alleen de waarde, die je vervolgens zelf vergelijkt met de officiële string.

Omgeving Controleopdracht
Linux sha256sum -c SHA256SUMS (controleert elk bestand in het manifest)
macOS shasum -a 256 -c checksum.txt
Snelle controle van enkele waarde echo "officiële-waarde bestandsnaam" | sha256sum -c - (geeft OK als het lukt)
Windows Bereken met Get-FileHash <bestand> -Algorithm SHA256, vergelijk vervolgens met de officiële waarde

Een korte beveiligingsgeschiedenis: hoe MD5 werd gebroken

MD5 faalde niet van de ene op de andere dag – van de eerste crack in de academische wereld tot vervalste certificaten in het wild, het duurde twee decennia.

  1. 1992

    MD5 wordt gepubliceerd

    Ronald Rivest bracht MD5 uit in RFC 1321. Snel, eenvoudig te implementerend en altijd producerend een 128-bits digest, werd het al snel de standaard voor bestandschecksums en wachtwoordopslag — en werd cryptografisch als veilig beschouwd.

  2. 2004

    Het team van Wang Xiaoyun onthult volledige MD5-collissies

    Op CRYPTO 2004 demonstreerde een team onder leiding van de Chinese wiskundige Wang Xiaoyun een volledige aanval op MD5 met collissies — het construeren van twee bestanden met verschillende inhoud maar dezelfde hash (initieel op een IBM P690-supercomputer in ongeveer een uur; latere verbeteringen brachten dit terug tot seconden op gewone hardware). De beloofde collisionresistentie van MD5 was weg; de staande ovatie die volgde werd een van de meest bekende momenten in de cryptografie.

  3. 2008

    Vervalste certificaten bereiken het echte internet

    Marc Stevens, Alexander Sotirov en anderen gebruikten een collisie met gekozen voorvoegsels om een tussenliggend CA-certificaat te vervalsen dat door browsers werd vertrouwd: certificaten met verschillende voorvoegsels droegen dezelfde handtekening. Een aanvaller kon nu 'geldige' HTTPS-certificaten uitgeven voor elke valse site. Certificaatautoriteiten stopten kort daarna met het uitgeven van MD5-certificaten.

  4. 2012

    Flame-malware valt Windows aan via MD5

    De door de staat gesteunde Flame-malware gebruikte een MD5-collisie om de licentieautoriteit van Microsofts terminalserver een vervalste code-ondertekeningscertificaat te laten ondertekenen, waardoor het zich vermomd als door Microsoft ondertekende update kon verspreiden in het Midden-Oosten. Het was de eerste aanval in de praktijk met een MD5-collisie; Microsoft trok het certificaat in via een noodpatch.

  5. 2017

    SHAttered: SHA-1 stort in

    Google en het Nederlandse instituut CWI (Marc Stevens e.a.) publiceerden twee verschillende PDF-bestanden met dezelfde SHA-1-hash — tegen een kosten van ruwweg 6.500 CPU-jaren en 110 GPU-jaren. Browsers trokken kort daarna het vertrouwen in SHA-1-certificaten in, en Git-platformen versnelden hun migratie ervan weg. Het tijdperk van 160 bits was voorbij.

Belangrijk nuance: een collisie-aanval 'breekt' de hash van geen enkel bestaand bestand — hij bouwt twee specifieke bestanden die dezelfde hash-waarde hebben. Maar voor handtekeningen en certificaten is dat al genoeg voor fatale vervalsing.

Hashing via de opdrachtregel

Wanneer een browser niet handig is, levert elk besturingssysteem een ingebouwde opdracht (SHA-256 getoond).

Omgeving Opdracht
Linux / macOS sha256sum bestandsnaam (op macOS: shasum -a 256 bestandsnaam)
Windows PowerShell Get-FileHash bestandsnaam -Algorithm SHA256
Windows CMD certutil -hashfile bestandsnaam SHA256

Hashing in code

Minimale voorbeelden in vier veelgebruikte talen wanneer je scripts schrijft of API's integreert.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

De native Web Crypto van de browser ondersteunt alleen de SHA-familie en vereist HTTPS of localhost; MD5 vereist een bibliotheek van derden.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

hash() en hash_file() ondersteunen md5, sha1, sha256, sha512 en meer; bestands-hashing is streaming, dus het gebruikt weinig geheugen.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

De standaardbibliotheek hashlib hoeft niet geïnstalleerd te worden; gebruik file_digest() voor streamende hashes van grote bestanden (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

Hashing zit niet in de standaardbibliotheek; voeg de crates RustCrypto sha2 en md-5 toe in Cargo.toml. Met de std-functie ingeschakeld, streamt io::copy bestanden in de hasher.

FAQ

Zijn mijn tekst en bestanden geüpload?

Nee. Alles wordt binnen je browser berekend: de SHA-familie maakt gebruik van de ingebouwde Web Crypto API en MD5 draait in pagina-JavaScript. De tool werkt ook zonder netwerk – probeer het eens met een gevoelig bestand.

Waarom heeft lege tekst nog steeds een hash?

Hash-algoritmes definiëren een unieke vaste uitvoer, zelfs voor nul bytes. De MD5 van een lege string is d41d8cd98f00b204e9800998ecf8427e en de SHA-256 begint met e3b0c442. Deze tool verbergt resultaten gewoon wanneer de invoer leeg is, zodat je ze niet per ongeluk kopieert.

Kan het bestanden van elke grootte hashen?

Dit hangt af van het beschikbare browsergeheugen – installers en schijfimages van een paar honderd MB zijn meestal geen probleem. Bestanden worden in één keer in het geheugen gelezen, dus gebruik voor bestanden van meerdere GB liever opdrachtregelprogramma's (sha256sum, certutil).

Waarom hebben hashes verschillende lengtes?

De lengte wordt bepaald door het algoritme: MD5 is 32 hexadecimale tekens, SHA-1 is 40, SHA-256 is 64 en SHA-512 is 128. Twee hexadecimale tekens per byte – en de lengte is onafhankelijk van de invoergrootte: een bestand van één byte en een bestand van meerdere GB leveren beide 64 tekens op met SHA-256.

Kan ik het gebruiken om API-handtekeningen te bouwen?

Ja. Veel open platforms ondertekenen verzoeken door "parameters + geheim" te hashen met MD5 of SHA-256. Deze tool is uitstekend voor het controleren van een handtekeningwaarde tijdens het debuggen; in productie bereken je hashes in je server-side taalbibliotheek en verwerk je nooit het geheim in frontendcode.

Hoe vergelijk ik een checksum met deze tool?

Schakel over naar het tabblad "Bestandschecksum", sleep het bestand erin en plak de checksum van de officiële site in het vak boven de resultaten. De tool detecteert het algoritme automatisch op lengte (32 tekens MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): de overeenkomende rij wordt groen met een "Geslaagd"-notitie als ze overeenkomen en rood als ze niet overeenkomen. Letterkast, omringende spaties en regeleinden worden automatisch genegeerd.

Gerelateerde tools

Andere tools voor codering, cryptografie en wachtwoorden.