MD5 vs SHA-256: welke hash kies je en waarom?

MD5 en SHA-256 zijn populaire hashfuncties, maar ze zijn niet uitwisselbaar. We vergelijken snelheid, veiligheid en gebruikstoepassingen.

Hashfuncties zijn overal: in wachtwoordbeveiliging, bestandsverificatie, blockchains en digitale handtekeningen. MD5 en SHA-256 zijn twee van de bekendste, maar ze verschillen sterk in veiligheid en prestaties. In dit artikel leggen we uit wanneer je welke kiest.

Wat is een hashfunctie?

Een hashfunctie neemt invoerdata van willekeurige lengte en produceert een vaste-lengte uitvoer — de hash of digest. Dezelfde invoer geeft altijd dezelfde hash. Een kleine wijziging in de invoer levert een compleet andere hash op.

Wil je zelf hashes genereren? Gebruik onze gratis hash generator.

MD5 in het kort

  • Volledige naam: Message Digest Algorithm 5
  • Hashlengte: 128 bit (32 hexadecimale tekens)
  • Snelheid: zeer snel
  • Veiligheid: onveilig voor cryptografische doeleinden

MD5 werd in 1991 gepubliceerd door Ronald Rivest. Het was jarenlang de standaard voor checksums en wachtwoordhashes. In 2004 werden er echter praktische collision-aanvallen gevonden: twee verschillende invoerwaarden die dezelfde MD5-hash produceren.

SHA-256 in het kort

  • Volledige naam: Secure Hash Algorithm 256-bit (onderdeel van SHA-2)
  • Hashlengte: 256 bit (64 hexadecimale tekens)
  • Snelheid: langzamer dan MD5, maar nog steeds snel
  • Veiligheid: veilig (geen bekende collision-aanvallen)

SHA-256 is ontwikkeld door de NSA en gepubliceerd in 2001. Het is de hashfunctie achter Bitcoin, SSL-certificaten en veel beveiligingsprotocollen.

De vergelijking

Veiligheid

Dit is het belangrijkste verschil. MD5 is gebroken — er zijn bekende methoden om bewust twee bestanden met dezelfde hash te maken. SHA-256 heeft geen bekende kwetsbaarheden en wordt als veilig beschouwd voor alle huidige toepassingen.

Hashlengte

MD5 produceert 32 tekens, SHA-256 produceert 64 tekens. Een langere hash betekent meer mogelijke waarden en dus een veel lagere kans op collisions. MD5 heeft 2¹²⁸ mogelijke hashes, SHA-256 heeft 2²⁵⁶ — een astronomisch verschil.

Snelheid

MD5 is sneller dan SHA-256 omdat het een eenvoudiger algoritme is. Maar dit is een nadeel bij wachtwoordhashing: een snelle hash maakt brute-force aanvallen eenvoudiger. Voor wachtwoorden zijn gespecialiseerde functies als bcrypt of Argon2 beter, maar als je een generieke hash nodig hebt, is SHA-256 de veilige keuze.

Bestandsgrootte van de hash

De MD5-hash is de helft zo lang als SHA-256 (32 vs 64 tekens). In situaties waar opslagruimte een rol speelt (miljoenen hashes opslaan), kan dit relevant zijn — maar in de praktijk is het verschil verwaarloosbaar.

Wanneer gebruik je MD5?

  • Bestandsintegriteit (niet-gevoelig): controleren of een download correct is overgekomen
  • Cache-keys: snelle, niet-cryptografische identificatie
  • Legacy-systemen: wanneer je werkt met bestaande MD5-data

Let op: gebruik MD5 nooit voor wachtwoorden of beveiligingskritische toepassingen.

Wanneer gebruik je SHA-256?

  • Wachtwoordverificatie: in combinatie met salt (maar liever bcrypt)
  • Digitale handtekeningen: SSL/TLS-certificaten
  • Bestandsintegriteit (gevoelig): software-downloads, firmware
  • Blockchain: Bitcoin en andere cryptocurrencies
  • Nieuwe projecten: kies altijd SHA-256 of hoger als je een hashfunctie nodig hebt

En SHA-1 dan?

SHA-1 (160-bit hash) zit qua veiligheid tussen MD5 en SHA-256 in. In 2017 demonstreerde Google een praktische collision-aanval op SHA-1. Het wordt niet meer aanbevolen voor nieuwe toepassingen.

Conclusie

Voor alles wat met beveiliging te maken heeft, kies je SHA-256. MD5 is alleen nog acceptabel voor niet-gevoelige checksums en legacy-compatibiliteit. Bij twijfel: kies SHA-256.

Genereer zelf MD5-, SHA-1- en SHA-256-hashes met onze gratis hash generator.