Hash-algoritmen Uitgelegd: MD5, SHA-1, SHA-256, SHA-512
Snel antwoord
MD5 en SHA-1 zijn gebroken en mogen niet voor beveiligingsgevoelige doeleinden worden gebruikt. SHA-256 is de huidige standaard voor integriteitscontroles en handtekeningen. SHA-512 is sneller op 64-bit CPU's. Gebruik onze Hash Generator om deze in je browser te berekenen.
Invoering
Een cryptografische hashfunctie neemt input van willekeurige grootte en produceert een fixed-size digest die deterministisch is, snel te berekenen, onmogelijk om te keren, collision-resistant en avalanche-gevoelig (één bit verandering wijzigt ruwweg de helft van de output-bits). MD5 (128-bit), SHA-1 (160-bit), SHA-256 (256-bit) en SHA-512 (512-bit) zijn de vier meest voorkomende hashfuncties, maar hun beveiligingseigenschappen verschillen dramatisch.
Stap voor stap
-
Begrijp de eigenschappen van een hashfunctie
Een goede cryptografische hash is deterministisch (dezelfde invoer levert altijd dezelfde uitvoer op), uitvoer met een vaste grootte, snel te berekenen, onhaalbaar om terug te draaien (weerstand vóór het beeld), onhaalbaar om twee invoer te vinden met dezelfde uitvoer (botsingsweerstand), en lawines (kleine invoerverandering draait ~ 50% van de uitvoerbits om).
-
Ken de samenvattingsgroottes
MD5 produceert 128 bits (32 hexadecimale tekens). SHA-1 produceert 160 bits (40 hexadecimale tekens). SHA-256 produceert 256 bits (64 hexadecimale tekens). SHA-512 produceert 512 bits (128 hexadecimale tekens). Langere samenvattingen verminderen de kans op botsingen, maar vergroten de opslaggrootte.
-
Ontdek waarom MD5 en SHA-1 niet werken
Onderzoekers hebben praktische botsingsaanvallen gevonden tegen MD5 (2004) en SHA-1 (2017, SHAttered-aanval). Door botsingen kan een aanvaller twee verschillende invoergegevens met dezelfde hash bewerken, waardoor digitale handtekeningen en certificaatautoriteiten worden verbroken. Geen van beide mag worden gebruikt voor de beveiliging.
-
Kies het juiste algoritme
Voor controles van de bestandsintegriteit waarbij snelheid belangrijker is dan veiligheid, zijn MD5 of SHA-1 nog steeds gebruikelijk. Gebruik voor elk beveiligingsgevoelig gebruik (wachtwoorden, handtekeningen, certificaten, blockchain) SHA-256 of SHA-512. Gebruik voor wachtwoordopslag een langzame KDF zoals bcrypt, scrypt of Argon2 -nooit raw SHA-256.
-
Bereken en verifieer hashes
Gebruik de Hash Generator om tekst met elk algoritme te hashen, of File Hash om de hash van een lokaal bestand te berekenen. Vergelijk de resulterende samenvatting met een bekende goede waarde om de integriteit te verifiëren. Eén bit verschil betekent dat het bestand beschadigd is of dat er mee is geknoeid.
Voorbeelden
MD5 van 'hallo' (128-bit, 32 hexadecimale tekens)
Invoer: hello
Uitvoer: 5d41402abc4b2a76b9719d911017c592
SHA-256 van 'hallo' (256-bit, 64 hexadecimale tekens)
Invoer: hello
Uitvoer: 2cf24dba5fb0d30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Lawine-effect: één karakterverandering
Invoer: Hallo versus Hallo
Uitvoer: SHA-256('hallo') begint met 2cf24dba... terwijl SHA-256('Hallo') begint met 185f8db3... —volledig anders ondanks invoerwijziging van één bit
Veelvoorkomende problemen
- Het gebruik van MD5 of SHA-1 voor het hashen van wachtwoorden: beide zijn snel en kapot, waardoor aanvallen met brute kracht en regenboogtafels triviaal zijn. Gebruik in plaats daarvan bcrypt, scrypt of Argon2.
- Hashing verwarren met encryptie: hashen is eenrichtingsverkeer en onomkeerbaar; encryptie is tweerichtingsverkeer. Je kunt een hash niet 'ontsleutelen'; je kunt alleen hashes vergelijken.
- Lengteverlengingsaanvallen negeren: MD5, SHA-1, SHA-256 en SHA-512 zijn allemaal kwetsbaar voor lengteverlengingsaanvallen wanneer ze als MAC's worden gebruikt. Gebruik HMAC-SHA256 voor berichtverificatie.
- Hashes vergelijken met == in plaats van een vergelijking in constante tijd: dankzij timinglekken kunnen aanvallers hashes byte voor byte herstellen. Gebruik een constante-tijdvergelijking in beveiligingscode.
Tips
- Standaard ingesteld op SHA-256 voor nieuwe systemen: het is snel, breed ondersteund en kent vanaf 2026 geen praktische botsingsaanval.
- Gebruik voor wachtwoordopslag bcrypt met een werkfactor van 12+ (of Argon2id met 64 MB geheugen) -nooit ruwe SHA-256, wat te snel is tegen GPU's.
- Vergelijk bij het verifiëren van bestandsdownloads zowel de algoritmenaam als de samenvatting: een SHA-1-hash is zinloos als de uitgever alleen SHA-256 bedoelde.
- Gebruik onze File Hash-tool om SHA-256 van grote bestanden lokaal te berekenen zonder te uploaden. Het streamt het bestand via de webcrypto API.