Co je tento nástroj?
MD5 („Message Digest 5“) vezme jakýkoli vstup — slovo, heslo, celý soubor — a vytvoří pevný 128bitový otisk zapsaný jako 32 hexadecimálních znaků. Stejný vstup vždy vytvoří stejný hash a změna byť jediného znaku vytvoří zcela odlišný výsledek.
Slovo „šifrování“ se k MD5 často přiřazuje, ale technicky je to nesprávné. Šifrování je reverzibilní se správným klíčem; hashování není reverzibilní vůbec. Služby „MD5 dešifrování“, které jste možná viděli online, matematiku ve skutečnosti neobracejí — vyhledávají váš hash v obří předpočítané tabulce běžných hesel a slov a uspějí pouze tehdy, pokud se váš původní text v této tabulce náhodou nachází.
MD5 byl publikován Ronem Rivestem v roce 1992 jako RFC 1321. Kryptograficky je pro bezpečnostní účely prolomený (kolize lze úmyslně vytvořit), ale stále se hojně používá pro kontrolní součty, cachovací klíče a deduplikaci, kde bezpečnost není důležitá.
Proč ho používat?
- Vygenerujte MD5 hash pro ověření, že soubor nebo řetězec nebyl náhodně pozměněn.
- Porovnejte svůj hash se známým/publikovaným MD5 pro potvrzení integrity.
- Vytvářejte deterministické cachovací klíče nebo ID pro deduplikaci.
- Pochopte jasně, proč „dešifrování“ MD5 hashe ve skutečnosti není možné.
- 100% lokální: váš vstup je hashovaný ve vašem prohlížeči a nikdy se nenahrává.
Jak se používá
- Napište nebo vložte svůj text do vstupního pole.
- Klikněte na „Generate MD5“.
- Přečtěte si výsledný 32znakový hash (zaškrtněte „Uppercase output“, pokud potřebujete velká písmena).
- Klikněte na „Copy“ pro zkopírování hashe, nebo jej použijte k porovnání s hashem, který již máte.
Příklad
Vstup
helloVýstup
5d41402abc4b2a76b9719d911017c592MD5 je deterministický: text „hello“ vytvoří přesně tento hash v každém nástroji, pokaždé.
„Šifrování“ vs „hashování“: proč na terminologii záleží
Šifrování a hashování řeší různé problémy a jejich záměna vede ke skutečným bezpečnostním chybám. Šifrování transformuje data reverzibilně pomocí klíče — zašifrujte klíčem, dešifrujte (stejným nebo párovaným) klíčem, získejte zpět originál. Hashování transformuje data jednosměrně, bez jakéhokoli klíče — neexistuje žádná operace, která by hash převedla zpět na jeho vstup, a to záměrně.
MD5 je hashovací funkce, ne šifra. Označení „MD5 šifrování“ je běžné neformální použití, ale vytváří nesprávné očekávání: neexistuje žádná legitimní operace „MD5 dešifrování“. Cokoli, co je jako taková inzerováno, je buď vyhledávací tabulka (funguje pouze u běžných, již známých vstupů), nebo prostě nefunguje.
Kdy je stále v pořádku MD5 používat
- Ověřování, že stažený soubor odpovídá kontrolnímu součtu vydavatele předtím, než jej spustíte.
- Generování deterministického cachovacího klíče z URL nebo query stringu.
- Deduplikace záznamů hashováním každého z nich a porovnáváním hashů místo celého textu.
- Rychlá kontrola, zda jsou dva soubory bajtově identické, bez jejich přímého porovnávání.
Kdy se MD5 zcela vyhnout
Nikdy nepoužívejte MD5 pro hesla, digitální podpisy nebo cokoli, kde záleží na tom, aby útočník netěžil z padělané shody. Protože kolize lze úmyslně vytvořit a protože nesolené MD5 hashe krátkých nebo běžných vstupů lze obrátit pomocí vyhledávacích tabulek, MD5 v těchto kontextech neposkytuje žádnou skutečnou bezpečnost. Pro hesla používejte bcrypt, scrypt nebo Argon2. Pro podpisy a integritu, kde záleží na odolnosti proti manipulaci, používejte SHA-256 nebo silnější algoritmus.
Časté dotazy
Mohu MD5 hash dešifrovat zpět na původní text?
Ne — hashování je záměrně jednosměrné; z hashe nelze vypočítat originál. Weby na „dešifrování MD5“ jen vyhledávají hashe v obřích předpočítaných tabulkách běžných vstupů, což je důvod, proč unikátní nebo dlouhé vstupy nelze obrátit.
Co tedy weby na „dešifrování MD5“ vlastně dělají?
Udržují obrovské databáze mapující běžná slova, jména a uniklá hesla na jejich MD5 hashe a poté provádí vyhledávání. Pokud váš původní text není v jejich databázi — což je pravděpodobné u čehokoli netriviálního — jednoduše nevrátí žádný výsledek.
Je MD5 bezpečný pro ukládání hesel?
Ne, rozhodně ne. MD5 lze rychle prolomit hrubou silou a má známé útoky pomocí kolizí a vyhledávání v tabulkách je přesně ten útok, který prolamuje nesolené ukládání hesel v MD5. Pro hesla používejte místo toho bcrypt, scrypt nebo Argon2.
Proč stejný text dává v jiném nástroji jiný hash?
Obvykle jde o neviditelné rozdíly: koncový nový řádek nebo mezera, jiné ukončení řádků (\r\n vs \n) nebo jiné kódování textu. Bajtově identický vstup vždy vytváří identický MD5 hash.
Odesílá se můj text na server kvůli hashování?
Ne. MD5 hash je počítán pomocí JavaScriptu přímo ve vašem prohlížeči — váš vstup se nikam nepřenáší.