Čo je tento nástroj?
MD5 ("Message Digest 5") berie akýkoľvek vstup — slovo, heslo, celý súbor — a vytvára pevný 128-bitový odtlačok, zapísaný ako 32 hexadecimálnych znakov. Rovnaký vstup vždy vytvorí rovnaký hash a zmena čo i len jedného znaku vytvorí úplne iný.
Slovo "šifrovanie" sa k MD5 pripája často, ale technicky je to nesprávne. Šifrovanie je reverzibilné so správnym kľúčom; hashovanie nie je reverzibilné vôbec. Služby "na dešifrovanie MD5", ktoré ste možno videli online, matematiku v skutočnosti neobracajú — vyhľadajú váš hash v obrovskej vopred vypočítanej tabuľke bežných hesiel a slov a uspejú len vtedy, ak sa váš pôvodný text v tejto tabuľke náhodou nachádza.
MD5 publikoval Ron Rivest v roku 1992 ako RFC 1321. Z hľadiska bezpečnosti je kryptograficky prelomený (kolízie možno zámerne vytvoriť), no stále sa hojne používa na kontrolné súčty, cache kľúče a deduplikáciu, kde bezpečnosť nie je otázkou.
Prečo ho používať?
- Vygenerujte MD5 hash na overenie, či súbor alebo reťazec neboli náhodne pozmenené.
- Porovnajte svoj hash so známym/publikovaným MD5 na potvrdenie integrity.
- Vytvorte deterministické cache kľúče alebo ID pre deduplikáciu.
- Jasne pochopte, prečo "dešifrovanie" MD5 hashu v skutočnosti nie je možné.
- 100 % lokálne: váš vstup sa hashuje vo vašom prehliadači a nikdy sa nenahráva.
Ako sa používa
- Napíšte alebo vložte svoj text do vstupného poľa.
- Kliknite na "Generate MD5".
- Prečítajte si výsledný 32-znakový hash (zaškrtnite "Uppercase output", ak potrebujete veľké písmená).
- Kliknutím na "Copy" skopírujte hash, alebo ho použite na porovnanie s hashom, ktorý už máte.
Príklad
Vstup
helloVýstup
5d41402abc4b2a76b9719d911017c592MD5 je deterministický: text "hello" vytvorí presne tento hash na každom nástroji, zakaždým.
"Šifrovanie" vs. "hash": prečo na terminológii záleží
Šifrovanie a hashovanie riešia rôzne problémy a ich zamieňanie vedie k reálnym bezpečnostným chybám. Šifrovanie transformuje dáta reverzibilne pomocou kľúča — zašifrujete kľúčom, dešifrujete (rovnakým alebo párovým) kľúčom, získate pôvodné dáta späť. Hashovanie transformuje dáta jednosmerne bez akéhokoľvek kľúča — neexistuje operácia, ktorá premení hash späť na jeho vstup, a to zámerne.
MD5 je hashovacia funkcia, nie šifra. Nazývať ju "MD5 šifrovanie" je bežné neformálne používanie, no vytvára nesprávne očakávanie: neexistuje legitímna operácia "dešifrovania MD5". Čokoľvek, čo sa ako taká operácia inzeruje, je buď vyhľadávacia tabuľka (funguje len pri bežných, už známych vstupoch), alebo jednoducho nefunguje.
Kedy je MD5 stále v poriadku použiť
- Overenie, že stiahnutý súbor zodpovedá kontrolnému súčtu vydavateľa pred spustením.
- Generovanie deterministického cache kľúča z URL alebo query reťazca.
- Deduplikácia záznamov hashovaním každého z nich a porovnávaním hashov namiesto celého textu.
- Rýchla kontrola, či sú dva súbory bajtovo identické, bez ich diffovania.
Kedy sa MD5 úplne vyhnúť
Nikdy nepoužívajte MD5 na heslá, digitálne podpisy ani na čokoľvek, kde záleží na tom, že útočník ťaží z falšovanej zhody. Pretože kolízie možno zámerne vytvoriť a pretože nesolené MD5 hashe krátkych alebo bežných vstupov možno obrátiť pomocou vyhľadávacích tabuliek, MD5 v týchto kontextoch neposkytuje žiadnu skutočnú bezpečnosť. Na heslá použite bcrypt, scrypt alebo Argon2. Na podpisy a integritu, kde záleží na odolnosti voči neoprávnenej zmene, použite SHA-256 alebo silnejší algoritmus.
Časté otázky
Môžem dešifrovať MD5 hash späť na pôvodný text?
Nie — hashovanie je z podstaty jednosmerné; pôvodný text nemožno z hashu vypočítať. "Dešifrovacie" stránky pre MD5 len vyhľadávajú hashe v obrovských vopred vypočítaných tabuľkách bežných vstupov, preto jedinečné alebo dlhé vstupy nemožno obrátiť.
Čo teda stránky na "dešifrovanie MD5" skutočne robia?
Udržiavajú obrovské databázy priraďujúce bežné slová, mená a uniknuté heslá k ich MD5 hashom a potom vykonajú vyhľadávanie. Ak váš pôvodný text nie je v ich databáze — čo je pravdepodobné pri čomkoľvek netriviálnom — jednoducho nevrátia žiadny výsledok.
Je MD5 bezpečné na ukladanie hesiel?
Nie, absolútne nie. MD5 sa dá rýchlo prelomiť hrubou silou a má známe útoky kolíziou, a vyhľadávanie v tabuľke "dešifrovania" je presne ten útok, ktorý prelomí nesolené uloženie hesiel pomocou MD5. Namiesto toho použite na heslá bcrypt, scrypt alebo Argon2.
Prečo dáva rovnaký text iný hash v inom nástroji?
Zvyčajne kvôli neviditeľným rozdielom: koncový nový riadok alebo medzera, iné ukončenia riadkov (\r\n vs \n), alebo iné kódovanie textu. Bajtovo identický vstup vždy vytvorí identický MD5 hash.
Odosiela sa môj text na server kvôli hashovaniu?
Nie. MD5 hash sa počíta pomocou JavaScriptu priamo vo vašom prehliadači — váš vstup sa nikam neprenáša.