MD5-hash
Gratis online MD5-hashtool. Tekst/bestand/batch/HMAC-MD5-modi, UTF-8/Latin1, hoofdletters, 8-karaktergroepering. ⚠️ MD5 is gecompromitteerd — NIET gebruiken voor wachtwoordopslag.
Gratis online MD5-hashtool. Tekst/bestand/batch/HMAC-MD5-modi, UTF-8/Latin1, hoofdletters, 8-karaktergroepering. ⚠️ MD5 is gecompromitteerd — NIET gebruiken voor wachtwoordopslag.
MD5 wordt meestal gebruikt voor bestandsintegriteitscontrole (bijv. downloadverificatie), snelle digestgeneratie, legacy-systeemcompatibiliteit, cache-sleutels en gegevensdeduplicatie in niet-beveiligingsscenario's. MD5 produceert 128 bits (32 hexadecimale tekens) en is extreem snel, geschikt voor niet-kritieke controlescenario's.
MD5 produceert 128 bits (32 hex), extreem snel maar gecompromitteerd; SHA-256 produceert 256 bits (64 hex), langzamer maar zonder praktische botsingsaanvallen en de voorkeur voor kritieke toepassingen.
SHA-256 ToolMD5 is extreem snel — moderne GPU's kunnen miljarden hashes per seconde berekenen, en regenboogtabellen verpletteren gewone wachtwoorden onmiddellijk. Gebruik bcrypt, scrypt of Argon2 voor wachtwoordopslag.
WachtwoordgeneratorAbsoluut NIET voor beveiliging (digitale handtekeningen, wachtwoorden, TLS). Maar voor niet-beveiligingstoepassingen (bestandsbeschadigingscontrole, deduplicatie, cache-sleutels) is MD5 nog steeds geschikt, omdat aanvallers geen stimulans hebben om botsingen te creëren.
MD5 is een eenrichtingsfunctie en kan wiskundig niet worden omgekeerd, maar regenboogtabellen en brute kracht kunnen zwakke wachtwoorden binnen seconden herstellen. Daarom mag MD5 nooit voor wachtwoordopslag worden gebruikt.
Nee. De tool maakt gebruik van stapsgewijze incrementele lezing — bestanden worden niet volledig in het geheugen geladen, dus zelfs multi-gigabyte bestanden worden soepel verwerkt met een responsieve interface.
HMAC-MD5 is een gehashte hash met een sleutel waarvoor een geheime sleutel vereist is. Hoewel gewone MD5 gecompromitteerd is, blijft HMAC-MD5 veilig wanneer de sleutel onbekend is (hoewel migratie naar HMAC-SHA256 wordt aanbevolen).
HMAC GeneratorMD5 (Message-Digest Algorithm 5) is een 128-bits hashfunctie ontworpen door Ronald Rivest in 1991 (RFC 1321), die een vaste 32-karakter hexadecimale digest produceert uit willekeurige invoer. Ooit veel gebruikt voor digitale handtekeningen, certificaatverificatie en wachtwoordopslag, werd MD5 gecompromitteerd door de botsingsaanval van Wang et al. in 2004, en de Flame-malware misbruikte MD5-botsingen om een vertrouwd CA-certificaat te vervalsen in 2008.
**Beveiligingsstatus**: NIST heeft MD5 officieel afgekeurd voor digitale handtekeningen in SP 800-131A (2011). MD5 blijft echter nuttig voor niet-beveiligingsscenario's: bestandsintegriteitscontrole tegen willekeurige corruptie, gegevensdeduplicatie en cache-sleutels. De belangrijkste vraag: zou een aanvaller baat hebben bij het creëren van een botsing? Zo nee, dan is de snelheid van MD5 een voordeel.
**Gebruik MD5 NOOIT voor wachtwoordopslag**: MD5 is extreem snel (miljarden hashes/seconde op GPU), waardoor gewone wachtwoorden onmiddellijk via brute kracht kunnen worden gekraakt. Wachtwoordopslag MOET bcrypt, scrypt of Argon2 gebruiken — trage hashes met instelbare kostenfactoren die brute kracht onhaalbaar maken.
**HMAC-MD5 is nog steeds veilig**: hoewel gewone MD5 gecompromitteerd is, blijft HMAC-MD5 (Hash-based Message Authentication Code met een sleutel) veilig wanneer de sleutel onbekend is, omdat de HMAC-constructie niet direct afhankelijk is van de botsingsweerstand van de onderliggende hash. Migratie naar HMAC-SHA256 wordt niettemin aanbevolen.
De tool gebruikt een pure JavaScript MD5-implementatie (Web Crypto API ondersteunt MD5 niet meer). Alle berekeningen worden lokaal in uw browser uitgevoerd — bestanden maken gebruik van stapsgewijze incrementele lezing en worden nooit naar servers geüpload.
| Algoritme | Uitvoerbits | Hex-lengte | Beveiliging | Snelheid | Aanbevolen gebruik |
|---|---|---|---|---|---|
MD5 | 128 bit | 32 karakters | ❌ Gecompromitteerd (botsingen/preimage) | Extreem snel | Bestandschecksums, deduplicatie, cache-sleutels |
SHA-1 | 160 bit | 40 karakters | ❌ Botsingen (2017) | Snel | Git, legacy-systeemcompatibiliteit |
SHA-256 | 256 bit | 64 karakters | ✅ Veilig | Gemiddeld | Digitale handtekeningen, certificaten, blockchain |
SHA-512 | 512 bit | 128 karakters | ✅ Veilig | Snel (64-bit) | Hoge beveiligingsscenario's, sleutelafleiding |
bcrypt | - | 60 karakters | ✅ Wachtwoord-specifiek | Langzaam (instelbaar) | Wachtwoordopslag |
| Jaar | Gebeurtenis | Impact |
|---|---|---|
1991 | Ron Rivest ontwerpt MD5 (RFC 1321) | Vervangt MD4 en wordt standaard hash-algoritme |
1996 | Eerste pseudo-collisiegebrek in MD5 ontdekt | Academische gemeenschap uit bezorgdheid |
2004 | Wang Xiaoyun's team demonstreert MD5-botsingsaanval | MD5 digitale handtekeningbeveiliging volledig verbroken |
2008 | Flame-malware vervalst CA-certificaat via MD5-botsing | NIST verwerpt MD5 officieel voor digitale handtekeningen |
2011 | NIST SP 800-131A verbiedt MD5 officieel voor beveiligingsdoeleinden | Amerikaanse overheidsystemen faseren MD5 uit |
2024 | Nieuwe preimage-aanvalspaper gepubliceerd | Laatste verdedigingslinie van MD5 (preimage-weerstand) doorbroken |
// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
const msgBuffer = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);
// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash) # b10a8db164e0754105b7a99be72e3fe5
# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
md5 = hashlib.md5()
with open(filepath, 'rb') as f:
while chunk := f.read(chunk_size):
md5.update(chunk)
return md5.hexdigest()
# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
public class MD5Example {
public static String md5(String input) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));
return sb.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(md5("Hello World"));
// b10a8db164e0754105b7a99be72e3fe5
}
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")