MD5 Hash Generator

Generera MD5-hashvärde från vilken text som helst

Inmatningstext

Körs lokalt · Säkert att klistra in hemligheter

MD5-hash

MD5-hashvärdet visas här…

Vad är MD5-hashning?

MD5 (Message-Digest Algorithm 5) är en kryptografisk hashfunktion som producerar ett fast 128-bitars (16 byte) sammandrag från vilken inmatning som helst, oavsett storlek. Publicerad 1992 av Ronald Rivest som RFC 1321, utformades MD5 som en snabbare efterföljare till MD4 och blev snabbt en av de mest använda hashfunktionerna på internet. Algoritmen bearbetar inmatning i 512-bitarsblock genom fyra rundor med 16 operationer vardera, med en annan icke-linjär funktion per runda, för att producera ett hexadecimalt fingeravtryck på 32 tecken.

En hashfunktion är en enkelriktad omvandling: givet en inmatning kan du beräkna hashen omedelbart, men givet bara hashen kan du inte återskapa den ursprungliga inmatningen. Även en enda bitsändring i inmatningen producerar ett helt annat sammandrag — en egenskap som kallas lavinaeffekten. MD5 avbildar ett oändligt inmatningsutrymme till ett fast 128-bitars utmatningsutrymme, så kollisioner (två olika inmatningar som producerar samma hash) är matematiskt garanterade att existera, men en säker hashfunktion gör det beräkningsmässigt orimligt att hitta dem.

Sedan 2004 har forskare demonstrerat praktiska kollisionsattacker mot MD5, vilket innebär att algoritmen inte längre anses säker för digitala signaturer, certifikat eller sammanhang där kollisionsmotstånd krävs. MD5 används dock fortfarande brett för icke-säkerhetsändamål: verifiering av filintegritet efter nedladdningar, generering av cachenycklar, deduplicering av innehåll och skapande av deterministiska identifierare från strängar. För dessa användningsfall gör algoritmens hastighet och utbredda biblioteksstöd det till ett praktiskt val. År 2008 publicerade Marc Stevens och kollegor en chosen-prefix-kollisionsattack, vilket innebär att en angripare kan skapa två dokument med godtyckligt valda prefix som delar samma sammandrag. Tekniken demonstrerades vid Chaos Communication Congress 2008 genom att konstruera ett oseriöst certifikatutfärdarcertifikat. Flame-skadeprogrammet 2012 utnyttjade sedan chosen-prefix-kollisioner för att förfalska ett Microsoft-kodsigneringscertifikat, vilket gjorde det möjligt för skadlig kod att utge sig för ett legitimt Windows Update-paket. Dessa verkliga utnyttjanden bekräftade att algoritmen är kryptografiskt bruten för förtroendeankrad användning och bör inte förlitas på när en motståndare kan påverka de inmatningar som hashas.

Varför använda den här MD5-generatorn?

Generera MD5-hashar omedelbart utan att installera något eller skriva kod. Klistra in din text och få det 32-tecken långa hexsammandraget i realtid.

Omedelbar hashning
Utmatningen uppdateras medan du skriver. Inga knapptryckningar, inget väntande — MD5-sammandraget visas tecken för tecken när du ändrar inmatningen.
🔒
Integritetsförst bearbetning
All hashning körs lokalt i din webbläsare med hjälp av JavaScript. Din inmatningstext lämnar aldrig din enhet och skickas aldrig till någon server.
📋
Kopia med ett klick
Kopiera hashen till urklipp med ett enda klick. Växla mellan gemener och versaler i hexutmatningen för att matcha det format ditt system förväntar sig.
🔍
Inget konto krävs
Ingen registrering, ingen inloggning, inga användningsbegränsningar. Öppna sidan och börja hasha omedelbart. Fungerar på vilken enhet som helst med en modern webbläsare.

MD5-användningsfall

Frontend-utveckling
Generera cache-busting-hashar för statiska resurser. Lägg till ett MD5-sammandrag av filinnehållet i CSS- och JavaScript-URL:er så att webbläsare hämtar den uppdaterade versionen när innehållet förändras.
Backend-ingenjörsarbete
Skapa deterministiska cachenycklar från komplexa frågeparametrar eller begärandekroppar. MD5-hashar producerar kompakta, fast långa nycklar som fungerar bra med Redis, Memcached och CDN-cachelager.
DevOps och CI/CD
Verifiera filintegritet efter överföringar genom att jämföra MD5-kontrollsummor. Många paketregister och artefaktförvar publicerar MD5-sammandrag bredvid nedladdningar för snabb verifiering.
QA och testning
Jämför MD5-hashar av API-svar, databasdumpar eller konfigurationsfiler för att upptäcka oväntade förändringar mellan testkörningar utan att jämföra hela innehållet.
Datateknik
Deduplicera poster i ETL-pipelines genom att beräkna MD5-hashar av radinnehåll. Två rader med samma hash är kandidater för deduplicering, vilket minskar lagrings- och bearbetningskostnader.
Lärande och utbildning
Experimentera med hashfunktioner för att förstå enkelriktade omvandlingar, lavinaeffekten och varför kollisionsmotstånd är viktigt för säkerhet. MD5 är den enklaste välkända hashen att studera.

MD5 jämfört med andra hashalgoritmer

MD5 är den snabbaste och kortaste av de vanliga hashalgoritmerna, men erbjuder de svagaste säkerhetsgarantierna. Tabellen nedan jämför sammandragsstorlekar, standarder och lämpliga användningsfall för varje algoritm.

AlgoritmSammandragsstorlekHexlängdStandardBäst för
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Hur MD5 fungerar

MD5 bearbetar inmatning genom en Merkle-Damgard-konstruktion: meddelandet vadderas till en multipel av 512 bitar, delas upp i block och varje block matas genom fyra rundor med 16 bitvisa operationer som blandar inmatningen med förberäknade sinus-härledda konstanter. Resultatet är ett 128-bitarstillstånd som blir det slutliga sammandraget.

Varje runda tillämpar en distinkt icke-linjär hjälpfunktion på tre av de fyra 32-bitarstillståndsvorden (A, B, C, D). Runda 1 använder F(B,C,D) = (B AND C) OR (NOT B AND D) — en bitvis villkorlig väljare. Runda 2 använder G(B,C,D) = (B AND D) OR (C AND NOT D) — en kompletterande väljare. Runda 3 använder H(B,C,D) = B XOR C XOR D — en paritetsfunktion. Runda 4 använder I(B,C,D) = C XOR (B OR NOT D) — en asymmetrisk kombinerare. Dessa fyra funktioner säkerställer att varje bit i inmatningen påverkar utmatningssammandraget och producerar lavinaeffekten som gör att små inmatningsförändringar orsakar stora, oförutsägbara förändringar i den resulterande hashen.

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

Algoritmen fortskrider i fem steg: (1) lägg till en 1-bit, sedan nollor tills meddelandelängden är 448 mod 512; (2) lägg till den ursprungliga meddelandelängden som ett 64-bitars little-endian heltal; (3) initialisera fyra 32-bitarstillståndsvariabler (A, B, C, D) med fasta konstanter; (4) bearbeta varje 512-bitarsblock genom 64 operationer med hjälp av fyra icke-linjära funktioner (F, G, H, I), en per runda med 16 operationer; (5) lägg till det resulterande tillståndet till det löpande totalet och mata ut den slutliga 128-bitarshashen i little-endian byteordning.

Kodexempel

Hur man genererar MD5-hashar i populära språk och miljöer. Observera att MD5 inte är tillgängligt i webbläsarens Web Crypto API — använd ett bibliotek eller Node.js.

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

Vanliga frågor

Är MD5 fortfarande säkert att använda?
Det är inte säkert för säkerhetskänsliga tillämpningar som digitala signaturer, TLS-certifikat eller lösenordshashning. Praktiska kollisionsattacker har demonstrerats sedan 2004, och chosen-prefix-kollisionsattacker är nu genomförbara på sekunder på vanlig hårdvara. För icke-säkerhetsanvändning — kontrollsummor, cachenycklar, innehållsdeduplicering — är algoritmen fortfarande ett praktiskt och brett stött val.
Vad är skillnaden mellan MD5 och SHA-256?
MD5-algoritmen producerar ett 128-bitars (32 hexadecimala tecken) sammandrag och är sårbar för kollisionsattacker. SHA-256 producerar ett 256-bitars (64 hexadecimala tecken) sammandrag och har inga kända praktiska attacker. SHA-256 är ungefär 30-40% långsammare än den äldre algoritmen på samma hårdvara, men den extra säkerhetsmarginalen gör det till standardvalet för alla tillämpningar där integritetsverifiering måste motstå fientlig manipulering.
Kan du reversera en MD5-hash tillbaka till den ursprungliga inmatningen?
Nej. Denna hashfunktion är enkelriktad av design — den kasserar information under hashning. För korta eller vanliga inmatningar kan angripare dock använda regnbågstabeller (förberäknade hash-till-klartext-mappningar) eller brute force för att hitta den ursprungliga inmatningen. Det är därför den aldrig bör användas för lösenordslagring. Använd bcrypt, scrypt eller Argon2 istället.
Varför producerar olika verktyg ibland olika MD5-hashar för samma text?
Den vanligaste orsaken är kodningsskillnader. Algoritmen opererar på bytes, inte tecken. Strängen 'hello' producerar olika hashar när den kodas som UTF-8 vs. UTF-16 vs. Latin-1. Ett annat vanligt problem är efterföljande radbrytningar: echo i de flesta skal lägger till en radbrytning (\n) om du inte använder echo -n. Verifiera alltid de exakta bytes som hashas.
Hur lång tid tar det att beräkna en MD5-hash?
Algoritmen är extremt snabb. På modern hårdvara bearbetar den data med 3-6 GB/s på en enda CPU-kärna. En GPU kan beräkna miljarder kontrollsummor per sekund. Denna hastighet är en fördel för filverifiering men en nackdel för lösenordshashning, där långsammare algoritmer (bcrypt, Argon2) föredras just för att de motstår brute force-attacker.
Vad är en MD5-kollision och varför spelar det någon roll?
En kollision inträffar när två olika inmatningar producerar samma hashsammandrag. År 2004 demonstrerade Xiaoyun Wang den första praktiska kollisionen mot MD5. År 2012 utnyttjade Flame-skadeprogrammet en kollision för att förfalska ett Microsoft-kodsigneringscertifikat. Idag kan identiska-prefix-kollisioner beräknas på under en minut. Detta gör algoritmen olämplig för alla tillämpningar som förlitar sig på kollisionsmotstånd, såsom digitala signaturer eller certifikatstiftning.
Bör jag använda MD5 eller CRC32 för filkontrollsummor?
Denna kontrollsumma är ett bättre val än CRC32 för filintegritetsverifiering. CRC32 är en 32-bitars feldetekteringskod utformad för att fånga upp oavsiktlig korruption vid överföring, inte avsiktlig manipulering. Dess lilla utmatningsutrymme innebär att kollisioner är trivialt enkla att konstruera. MD5 tillhandahåller ett 128-bitars sammandrag med mycket starkare motstånd mot oavsiktliga kollisioner. För fientliga scenarier (verifiering av nedladdningar från opålitliga källor), använd SHA-256 istället.