MD5 Hash Generator

Vygenerujte MD5 hash z libovolného textu

Vstupní text

Běží lokálně · Bezpečné pro vkládání tajných údajů

MD5 hash

MD5 hash se zobrazí zde…

Co je hashování MD5?

MD5 (Message-Digest Algorithm 5) je kryptografická hashovací funkce, která z libovolného vstupu — bez ohledu na jeho velikost — vytváří pevný 128bitový (16bajtový) otisk. Algoritmus byl publikován v roce 1992 Ronaldem Rivistem jako RFC 1321, navržen jako rychlejší nástupce MD4, a rychle se stal jednou z nejpoužívanějších hashovacích funkcí na internetu. Algoritmus zpracovává vstup v 512bitových blocích prostřednictvím čtyř kol po 16 operacích, přičemž každé kolo používá jinou nelineární funkci, a produkuje 32znakový hexadecimální otisk.

Hashovací funkce je jednosměrná transformace: ze vstupu lze okamžitě vypočítat hash, ale ze samotného hashe nelze původní vstup obnovit. Dokonce i jednobitvá změna vstupu vyvolá zcela jiný otisk — vlastnost zvaná lavinový efekt. MD5 mapuje nekonečný vstupní prostor na pevný 128bitový výstupní prostor, takže kolize (dva různé vstupy se stejným hashem) matematicky nutně existují, ale bezpečná hashovací funkce by jejich nalezení měla učinit výpočetně neproveditelným.

Od roku 2004 výzkumníci demonstrovali praktické útoky kolizemi proti MD5, což znamená, že algoritmus již není považován za bezpečný pro digitální podpisy, certifikáty ani jiné kontexty vyžadující odolnost vůči kolizím. MD5 však zůstává široce používán pro účely bez bezpečnostního dopadu: ověřování integrity souborů po stažení, generování klíčů mezipaměti, deduplikace obsahu a vytváření deterministických identifikátorů z řetězců. Pro tyto aplikace je rychlost algoritmu a jeho všudypřítomná podpora v knihovnách praktickou volbou. V roce 2008 Marc Stevens a kolegové publikovali útok zvolenou předponou, při němž může útočník vytvořit dva dokumenty s libovolně zvolenými předponami sdílejícími stejný otisk. Tato technika byla demonstrována na konferenci Chaos Communication Congress v roce 2008 vytvořením podvodného certifikátu certifikační autority. Malware Flame z roku 2012 následně využil kolize zvolené předpony k zfalšování certifikátu pro podpis kódu Microsoftu, čímž umožnil malwaru vydávat se za legitimní balíček Windows Update. Tyto reálné exploity potvrdily, že algoritmus je kryptograficky zlomený pro jakékoli důvěryhodné použití a neměl by být používán tam, kde může protivník ovlivnit hashované vstupy.

Proč použít tento generátor MD5?

Generujte MD5 hashe okamžitě bez instalace čehokoli nebo psaní kódu. Vložte text a získejte 32znakový hexadecimální otisk v reálném čase.

Okamžité hashování
Výstup se aktualizuje při psaní. Žádné klikání na tlačítka, žádné čekání — MD5 otisk se zobrazuje znak po znaku při úpravě vstupu.
🔒
Zpracování s ochranou soukromí
Veškeré hashování probíhá lokálně v prohlížeči pomocí JavaScriptu. Váš vstupní text nikdy neopustí vaše zařízení a není odesílán na žádný server.
📋
Kopírování jedním kliknutím
Zkopírujte hash do schránky jediným kliknutím. Přepínejte mezi malými a velkými hexadecimálními písmeny podle formátu, který váš systém očekává.
🔍
Bez nutnosti účtu
Žádná registrace, žádné přihlášení, žádné limity použití. Otevřete stránku a začněte ihned hashovat. Funguje na jakémkoli zařízení s moderním prohlížečem.

Případy použití MD5

Frontend vývoj
Generujte hashe pro eliminaci mezipaměti statických prostředků. Přidejte MD5 otisk obsahu souboru k URL adresám CSS a JavaScriptu, aby prohlížeče načetly aktualizovanou verzi při změně obsahu.
Backend vývoj
Vytvářejte deterministické klíče mezipaměti ze složitých parametrů dotazů nebo těl požadavků. MD5 hashe produkují kompaktní klíče pevné délky, které dobře fungují s Redis, Memcached a vrstvami CDN mezipaměti.
DevOps a CI/CD
Ověřujte integritu souborů po přenosech porovnáním MD5 kontrolních součtů. Mnoho registrů balíčků a úložišť artefaktů zveřejňuje MD5 otisky spolu se staženými soubory pro rychlé ověření.
QA a testování
Porovnávejte MD5 hashe odpovědí API, výpisů databází nebo konfiguračních souborů ke zjištění neočekávaných změn mezi testovacími běhy bez porovnání celého obsahu.
Datové inženýrství
Deduplikujte záznamy v ETL pipeline výpočtem MD5 hashů obsahu řádků. Dva řádky se stejným hashem jsou kandidáti na deduplikaci, čímž se snižují náklady na úložiště a zpracování.
Vzdělávání a výuka
Experimentujte s hashovacími funkcemi, abyste pochopili jednosměrné transformace, lavinový efekt a proč je odolnost vůči kolizím důležitá pro bezpečnost. MD5 je nejjednodušší široce známý hash k prostudování.

MD5 vs. jiné hashovací algoritmy

MD5 je nejrychlejší a nejkratší z běžných hashovacích algoritmů, ale nabízí nejslabší bezpečnostní záruky. Níže uvedená tabulka porovnává velikosti otisků, standardy a vhodné případy použití jednotlivých algoritmů.

AlgoritmusVelikost otiskuDélka hex výstupuStandardNejlépe pro
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

Jak MD5 funguje

MD5 zpracovává vstup prostřednictvím konstrukce Merkle-Damgård: zpráva je doplněna na násobek 512 bitů, rozdělena do bloků a každý blok je zpracován čtyřmi koly po 16 bitových operacích, které míchají vstup s předpočítanými konstantami odvozenými ze sinu. Výsledkem je 128bitový stav, který se stane konečným otiskem.

Každé kolo aplikuje odlišnou nelineární pomocnou funkci na tři ze čtyř 32bitových stavových slov (A, B, C, D). Kolo 1 používá F(B,C,D) = (B AND C) OR (NOT B AND D) — bitový podmíněný selektor. Kolo 2 používá G(B,C,D) = (B AND D) OR (C AND NOT D) — doplňkový selektor. Kolo 3 používá H(B,C,D) = B XOR C XOR D — funkci parity. Kolo 4 používá I(B,C,D) = C XOR (B OR NOT D) — asymetrický kombinátor. Tyto čtyři funkce zajišťují, že každý bit vstupu ovlivňuje výstupní otisk a vyvolává lavinový efekt, díky němuž malé změny vstupu způsobují velké, nepředvídatelné změny výsledného hashe.

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

Algoritmus probíhá v pěti fázích: (1) připojení bitu 1, poté nul, dokud délka zprávy není 448 mod 512; (2) připojení původní délky zprávy jako 64bitového celého čísla v little-endian pořadí; (3) inicializace čtyř 32bitových stavových proměnných (A, B, C, D) pevnými konstantami; (4) zpracování každého 512bitového bloku 64 operacemi s využitím čtyř nelineárních funkcí (F, G, H, I), po jedné na kolo 16 operací; (5) přičtení výsledného stavu k průběžnému součtu a výstup konečného 128bitového hashe v little-endian pořadí bajtů.

Příklady kódu

Jak generovat MD5 hashe v oblíbených jazycích a prostředích. Upozorňujeme, že MD5 není dostupné v prohlížečovém Web Crypto API — použijte knihovnu nebo 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

Časté otázky

Je MD5 stále bezpečné použít?
Není bezpečné pro bezpečnostně citlivé aplikace, jako jsou digitální podpisy, TLS certifikáty nebo hashování hesel. Praktické útoky kolizemi byly demonstrovány od roku 2004 a útoky kolizemi zvolenou předponou jsou dnes proveditelné během sekund na běžném hardwaru. Pro účely bez bezpečnostního dopadu — kontrolní součty, klíče mezipaměti, deduplikace obsahu — zůstává algoritmus praktickou a široce podporovanou volbou.
Jaký je rozdíl mezi MD5 a SHA-256?
Algoritmus MD5 produkuje 128bitový (32znakový hex) otisk a je zranitelný vůči útokům kolizemi. SHA-256 produkuje 256bitový (64znakový hex) otisk a nemá žádné známé praktické útoky. SHA-256 je přibližně o 30–40 % pomalejší než starší algoritmus na stejném hardwaru, ale větší bezpečnostní rezerva z něj činí výchozí volbu pro jakoukoli aplikaci, kde musí ověření integrity odolávat záměrné manipulaci.
Lze MD5 hash zpětně převést na původní vstup?
Ne. Tato hashovací funkce je ze své podstaty jednosměrná — při hashování zahazuje informace. Pro krátké nebo běžné vstupy však mohou útočníci použít duhové tabulky (předpočítaná mapování hash na prostý text) nebo hrubou sílu k nalezení původního vstupu. Proto by MD5 nikdy nemělo být používáno pro ukládání hesel. Místo toho použijte bcrypt, scrypt nebo Argon2.
Proč různé nástroje někdy produkují různé MD5 hashe pro stejný text?
Nejčastější příčinou jsou rozdíly v kódování. Algoritmus operuje s bajty, ne se znaky. Řetězec 'hello' produkuje různé hashe při kódování jako UTF-8, UTF-16 nebo Latin-1. Dalším častým problémem jsou koncové znaky nového řádku: příkaz echo ve většině shellů připojuje nový řádek (\n), pokud nepoužijete echo -n. Vždy ověřte, které přesné bajty jsou hashovány.
Jak dlouho trvá výpočet MD5 hashe?
Algoritmus je extrémně rychlý. Na moderním hardwaru zpracovává data rychlostí 3–6 GB/s na jednom jádru CPU. GPU dokáže vypočítat miliardy kontrolních součtů za sekundu. Tato rychlost je výhodou pro ověřování souborů, ale nevýhodou pro hashování hesel, kde jsou preferovány pomalejší algoritmy (bcrypt, Argon2) právě proto, že odolávají útokům hrubou silou.
Co je kolize MD5 a proč je to důležité?
Kolize nastane, když dva různé vstupy produkují stejný otisk hashe. V roce 2004 Xiaoyun Wang demonstroval první praktickou kolizi proti MD5. V roce 2012 malware Flame využil kolizi k zfalšování certifikátu pro podpis kódu Microsoftu. Dnes lze kolize se shodnou předponou vypočítat za méně než minutu. To činí algoritmus nevhodným pro jakoukoli aplikaci spoléhající na odolnost vůči kolizím, jako jsou digitální podpisy nebo připnutí certifikátů.
Mám použít MD5 nebo CRC32 pro kontrolní součty souborů?
Tento kontrolní součet je lepší volbou než CRC32 pro ověřování integrity souborů. CRC32 je 32bitový kód pro detekci chyb navržený k zachycení náhodného poškození při přenosu, nikoli záměrné manipulace. Jeho malý výstupní prostor znamená, že kolize lze triviálně snadno vytvořit. MD5 poskytuje 128bitový otisk s výrazně silnější odolností vůči náhodným kolizím. Pro situace s potenciálními útočníky (ověřování stažených souborů z nedůvěryhodných zdrojů) použijte raději SHA-256.