Generátor hash
Generujte MD5, SHA-1, SHA-256, SHA-384 a SHA-512 hash z libovolného textu okamžitě.
O hashovacích funkcích
Hashovací funkce je jednosměrný matematický algoritmus, který převádí vstupní data libovolné velikosti — jedno písmeno, odstavec nebo vícegigabajtový soubor — na řetězec pevné délky zvaný hash, otisk nebo kontrolní součet. Stejný vstup vždy vytvoří stejný výstup, ale i nepatrná změna vstupu (jeden překlopený bit) vytvoří zcela odlišný hash. Tato vlastnost činí generátor hash neocenitelným pro ověřování integrity dat, bezpečné ukládání přihlašovacích údajů a budování kryptografických systémů.
Tento bezplatný online generátor hash běží kompletně ve vašem prohlížeči pomocí Web Crypto API, takže váš text nikdy neopustí vaše zařízení. Podporuje nejpoužívanější algoritmy — MD5, SHA-1, SHA-256, SHA-384 a SHA-512 — a je ideální pro vývojáře, bezpečnostní výzkumníky a kohokoli, kdo potřebuje rychle vypočítat otisk.
Klíčové vlastnosti kryptografického hashe
- Determinismus: Stejný vstup vždy vytvoří stejný hash.
- Pevná délka výstupu: Bez ohledu na velikost vstupu má hash konstantní délku (např. 64 hex znaků pro SHA-256).
- Lavinový efekt: Změna jednoho bitu ve vstupu změní zhruba polovinu výstupních bitů.
- Jednosměrnost (odolnost vůči reverzi): Je výpočetně neproveditelné převést hash zpět na původní vstup.
- Odolnost vůči kolizím: Mělo by být extrémně obtížné najít dva různé vstupy, které vytvoří stejný hash.
- Rychlost výpočtu: Generátor hash dokáže zpracovat megabajty dat za milisekundy.
Typy hash: MD5, SHA-1, SHA-256 a SHA-512 v porovnání
Ne všechny hashovací algoritmy jsou si rovny. Liší se délkou výstupu, rychlostí a — co je nejdůležitější — bezpečností. Následující tabulka a sekce rozebírají čtyři nejběžnější algoritmy, se kterými se setkáte při použití generátoru hash.
| Algoritmus |
Délka výstupu |
Bezpečnostní stav |
Typické použití dnes |
| MD5 | 128 bitů (32 hex) | ⚠️ Porušený | Pouze nekritické kontrolní součty |
| SHA-1 | 160 bitů (40 hex) | ⚠️ Zastaralý | Starší systémy, objekty Git |
| SHA-256 | 256 bitů (64 hex) | ✅ Bezpečný | Běžný výchozí standard |
| SHA-512 | 512 bitů (128 hex) | ✅ Bezpečný | Vysoká bezpečnost, 64bitové systémy |
MD5 (Message Digest 5)
MD5, navržený v roce 1991, vytváří 128bitový hash. Je rychlý a kompaktní, což ho učinilo oblíbeným pro kontrolní součty souborů a starší ukládání hesel. MD5 je však kryptograficky porušený: výzkumníci demonstrovali praktické útoky na kolize, což znamená, že lze vytvořit dva různé vstupy sdílející stejný MD5 hash. Z toho důvodu se MD5 nikdy nesmí používat pro hashování hesel, digitální podpisy ani jakýkoli jiný bezpečnostně citlivý účel. Zůstává přijatelný pouze jako rychlý, nekritický kontrolní součet pro detekci náhodného poškození dat.
SHA-1 (Secure Hash Algorithm 1)
SHA-1 vytváří 160bitový otisk a byl hojně nasazen v TLS certifikátech, Gitu a PGP v průběhu 2000. let. V roce 2017 zveřejnily společnost Google a CWI Amsterdam SHAttered útok — první praktickou kolizi pro SHA-1. Všechny hlavní prohlížeče a certifikační autority od té doby SHA-1 zavrhly a NIST ho formálně zakázal pro digitální podpisy po roce 2013. Stejně jako MD5 se SHA-1 nedoporučuje pro žádnou novou bezpečnostní práci; stále se objevuje ve starších systémech a v objektovém modelu Gitu, kde je riziko kolize zmírněno modely důvěry.
SHA-256
SHA-256 je součástí rodiny SHA-2 (definované ve FIPS 180-4) a je doporučeným výchozím algoritmem pro téměř každou moderní aplikaci. Vytváří 256bitový hash, nemá žádné známé praktické útoky a používá ho Bitcoin, TLS 1.3, SSH, certifikáty pro podpis kódu a nespočet nástrojů pro integritu souborů. Pro většinu použití generátoru hash — ověřování stažených souborů, budování Merkleových stromů nebo generování identifikátorů — je SHA-256 správnou volbou. Pro ukládání hesel ho kombinujte s pomalou funkcí odvozování klíče, jako je Argon2, bcrypt nebo PBKDF2, místo přímého hashování hesel.
SHA-512
SHA-512 vytváří 512bitový otisk a je navržen pro efektivní běh na 64bitových procesorech, často překonává SHA-256 v surové propustnosti na moderním hardwaru. Nabízí větší bezpečnostní rezervu a je preferován pro vysoce bezpečnostní kontexty, konstrukce HMAC na 64bitových systémech a aplikace, které si mohou dovolit delší otisk. SHA-512/256 (zkrácená varianta) vám dává rychlost SHA-512 s 256bitovým výstupem, pokud je délka problémem.
SHA-384
SHA-384 je také součástí rodiny SHA-2 a je v podstatě SHA-512 s odlišnou počáteční hodnotou, zkrácený na 384 bitů. Odpovídá výkonnostním charakteristikám SHA-512 a běžně se používá v ECDSA a X.509 certifikátech, kde je požadována 384bitová úroveň zabezpečení.
Vysvětlení odolnosti vůči kolizím
Odolnost vůči kolizím je vlastnost, která znemožňuje najít dva různé vstupy, které se zahashují na stejnou hodnotu. Je to základní kámen bezpečnostních záruk hashovací funkce. Podle paradoxu narozenin má hash s n bity výstupu sílu odolnosti vůči kolizím zhruba n/2 bitů — takže SHA-256 poskytuje přibližně 128 bitů odolnosti vůči kolizím a SHA-512 asi 256 bitů.
Pokud se útok na kolize stane prakticky proveditelným, algoritmus se považuje za porušený:
- MD5 kolize lze vygenerovat za méně než sekundu na běžném notebooku.
- SHA-1 kolize stojí zhruba 110 000 USD v cloudovém výpočtu (SHAttered, 2017) a jejich cena stále klesá.
- SHA-256 / SHA-512 nemají žádné známé praktické útoky na kolize a očekává se, že zůstanou bezpečné po desetiletí — dokud je neohrozí kvantové počítače v měřítku pomocí Groverova algoritmu, který snižuje jejich efektivní sílu na polovinu.
Pro každý systém, který spoléhá na to, že je hash jedinečný — content-addressable úložiště, digitální podpisy, blockchainy, otisky certifikátů — je odolnost vůči kolizím nepostradatelná. Vždy vyberte SHA-256 nebo silnější.
Kdy použít který hashovací algoritmus
Výběr správného algoritmu závisí na vašem cíli. Zde jsou praktická doporučení:
- Ověřování stažených souborů / kontrola integrity: SHA-256 je moderní standard. Většina linuxových distribucí a dodavatelů softwaru zveřejňuje SHA-256 kontrolní součty.
- Ukládání hesel: Nehashujte hesla přímo pomocí SHA-256. Použijte specializovaný algoritmus pro hashování hesel — Argon2id (doporučení OWASP), bcrypt nebo scrypt — které jsou záměrně pomalé a náročné na paměť, aby odolaly hrubé síle. PBKDF2-HMAC-SHA-256 je přijatelný, když Argon2 není k dispozici.
- Digitální podpisy a certifikáty: SHA-256 nebo SHA-384 s RSA/ECDSA. SHA-1 podpisy jsou odmítány všemi moderními prohlížeči.
- Blockchain a kryptoměny: Bitcoin používá SHA-256 (dvojitý hash); Ethereum používá Keccak-256; Litecoin používá Scrypt. Každá síť specifikuje vlastní algoritmus.
- Content-addressable úložiště / Git: Git historicky používá SHA-1 a migruje na SHA-256. IPFS ve výchozím nastavení používá SHA-2-256.
- HMAC / ověřování zpráv: HMAC-SHA-256 je všudypřítomná volba pro podepisování API a integritu JWT.
- Rychlé nekritické kontrolní součty: MD5 nebo CRC32 jsou v pořádku, když potřebujete pouze detekovat náhodné poškození a nehrozí vám útok.
Pokud si nejste jisti, zvolte jako výchozí SHA-256 — je to bezpečná a dobře podporovaná volba pro velkou většinu případů použití generátoru hash.
Běžné případy použití generátoru hash
1. Ukládání hesel
Nikdy neukládejte uživatelská hesla v prostém textu. Místo toho uložte solený hash vytvořený pomalým algoritmem náročným na paměť. Když se uživatel přihlásí, systém zahashuje odeslané heslo se stejnou solí a porovná výsledek. Generátor hash vám může pomoci pochopit, jak tyto otisky vypadají, ale pro produkční ukládání hesel použijte Argon2id, bcrypt nebo PBKDF2 — nikdy čistý SHA-256 nebo MD5.
2. Integrita a ověřování souborů
Distributoři softwaru zveřejňují kontrolní součty, abyste si mohli potvrdit, že stažený soubor nebyl poškozen nebo zfalšován. Spuštění sha256sum na souboru a porovnání výstupu se zveřejněným SHA-256 hashem zaručuje integritu bajt po bajtu. To chrání jak před náhodným poškozením (chyby sítě), tak před záměrným zásahem (útoky na dodavatelský řetězec), pokud jste kontrolní součet získali přes důvěryhodný kanál.
3. Digitální podpisy
Schéma digitálních podpisů jako RSA-PSS a ECDSA nepodepisují dokument přímo — podepisují hash dokumentu. Podepisující převede zprávu generátorem hash (SHA-256 nebo silnější) a poté zašifruje otisk svým soukromým klíčem. Protože kolize odolné hashe znemožňují vytvořit jiný dokument se stejným otiskem, je podpis vázán na přesný obsah.
4. Blockchain a kryptoměny
Blockchainy jsou postaveny na hashování. Bitcoin hashuje hlavičky bloků pomocí SHA-256 jako součást proof-of-work, propojuje bloky zahrnutím hashe předchozího bloku a adresuje účty prostřednictvím hashů veřejných klíčů. Merkleovy stromy — které efektivně shrnují velké datové sady pomocí hashů — jsou základem toho, jak uzly ověřují transakce bez stahování celého řetězce.
5. Deduplikace dat a adresování obsahu
Systémy jako Git, IPFS a mnoho zálohovacích nástrojů identifikují objekty podle jejich hashe. Dva identické soubory vytvoří stejný hash, takže úložiště může být automaticky deduplikováno. Také takto směrují požadavky sítě s adresovatelným obsahem.
6. HMAC a podepisování API požadavků
REST API a JWT používají HMAC (Hash-based Message Authentication Code) k prokázání, že požadavek nebyl zfalšován. HMAC-SHA-256 kombinuje tajný klíč se zprávou a prožene ho hashovací funkcí, čímž vytvoří značku, kterou může vygenerovat nebo ověřit pouze někdo s klíčem.
Hashování vs. šifrování: Jaký je rozdíl?
Hashování a šifrování jsou obě kryptografické operace, ale slouží zásadně odlišným účelům — a jejich záměna je častou bezpečnostní chybou.
| Vlastnost |
Hashování |
Šifrování |
| Směr | Jednosměrné (nevratné) | Obousměrné (vratné pomocí klíče) |
| Vyžaduje klíč | Ne | Ano (symetrický nebo asymetrický) |
| Výstup | Otisk pevné délky | Šifrový text proměnlivé délky |
| Cíl | Ověřit integritu / identitu | Chránit důvěrnost |
| Příklad | SHA-256, MD5 | AES-256, RSA, ChaCha20 |
Hash nelze „dešifrovat“. Generátor hash vytváří jednosměrný otisk — neexistuje algoritmus, který by ho vrátil zpět. K „ prolomení“ hashe musíte hádat vstupy (útok hrubou silou nebo slovníkový útok) a kontrolovat, zda vytvoří stejný otisk. To je přesně důvod, proč je hashování vhodné pro ukládání hesel (server nikdy nepotřebuje znát původní heslo), zatímco šifrování je vhodné pro data, která musíte později obnovit, jako jsou zprávy nebo soubory.
Moderní systémy často kombinují obojí: šifrují data kvůli důvěrnosti a hashují je (nebo používají HMAC) pro ověření integrity a pravosti.