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.
- Algoritmen
- MD5 · SHA-1/256/384/512
- Motor
- Web Crypto API
- Privacy
- 100% lokaal
- Invoer
- Tekst / bestand
Sleep een bestand hierheen of klik om te bladeren
Bestandsbytes worden lokaal gelezen om controlesommen te berekenen — er wordt niets geüpload. Werkt met installers, schijfkopieën en archieven.
KENMERKEN
Alle vijf hashes op één pagina
Van snelle vingerafdrukken tot veilige handtekeningen — elke hash die ontwikkelaars, operators en downloadverificatie nodig hebben.
Vijf algoritmen
MD5, SHA-1, SHA-256, SHA-384 en SHA-512 samen weergegeven met uitvoerbitlengtes — geen wisseling meer tussen hulpmiddelen.
Real-time berekening
Tekst-hashes terwijl u typt, geen knop nodig. Resultaten in monospace — klik op een rij om te kopiëren.
Bestandsintegriteitscontrole
Sleep een installer, schijfkopie of archief erin en vergelijk met de officiële controlesom om een niet-aangetaste download te bevestigen.
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.
UTF-8-consistent
Tekst wordt gehasht als UTF-8-bytes, dus de resultaten komen exact overeen met md5sum, PHP md5() en Python hashlib.
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:
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.
Veel downloads komen daadwerkelijk van spiegelservers of CDN’s, waar synchronisatietragheid of cachesstoringen je een verouderde release kunnen bezorgen — of een half bestand.
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
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
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
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.
-
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.
-
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.
-
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.
-
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.
-
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.
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.
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.
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+).
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.
Base64 Encode / Decode
Converteren tussen binair en tekst – handig voor Data URI's en debuggen van HTTP-basic auth.
Wachtwoordgenerator
Genereer sterke willekeurige wachtwoorden – wachtwoorden moeten willekeurig en uniek zijn, niet "versleuteld" met een hash.
Wachtwoordsterktetester
Controleren of een wachtwoord lang en willekeurig genoeg is en of het in bekende datalekken is verschenen.