Generátor hashů

Vypočítá otisky MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b nebo BLAKE2s z libovolného textu nebo souboru — hodí se pro kontrolní součty, ověřování integrity a klíče cache. Vložte očekávaný otisk a ověřte jej proti vstupu, nebo vložte neznámý řetězec hashe a zjistěte, který algoritmus jej pravděpodobně vytvořil. SHA-1/256/384/512 pocházejí z nativní WebCrypto prohlížeče; ostatní jsou samostatné implementace v čistém JavaScriptu, takže vše běží lokálně. Viz také generátor náhodných čísel pro sekvence s pevným semenem.
Běží zcela lokálně — nic se nenahrává. Vstupy až 200 MB.
Vstup: Algoritmy:
Formát výstupu: SHA-1 je zastaralý — dávejte přednost SHA-256/512, pokud jej nepotřebujete.
Řádky otisků mají tvar „ALGORITMUS  hash“, takže je můžete zkopírovat do poznámek k vydání nebo do manifestů ke stažení.
Vložte otisk, který vám dala stránka ke stažení nebo manifest. Nástroj toleruje velká a malá písmena, mezery, dvojtečky, předpony ve stylu sha256=, obaly ve stylu MD5 (file.exe) = a víceřádkový výstup md5sum, a poté jej porovná s algoritmy, které jste zaškrtli výše.
Vložte neznámý řetězec hashe. Nástroj přečte jeho délku, sadu znaků a předpony a vypíše algoritmy, které jej mohly vytvořit — od prostého hex otisku po hashe hesel ve formátu PHC, jako $2b$… nebo $argon2id$….
Volba algoritmu:
SHA-256 je dnes rozumným výchozím volbou pro kontrolu integrity. SHA-512 je silnější a na 64bitovém hardwaru běží rychleji, za cenu delšího výstupu; SHA-384 je střední volbou, když potřebujete otisk SHA-2 se zkrácenou délkou. SHA-3 je samostatně navržený standard NIST (ne vylepšení SHA-2) a je standardní odpovědí, když chcete algoritmus bez sdíleného původu s SHA-2; Keccak-256 je varianta z doby před standardem, kterou používá Ethereum a několik dalších systémů, a liší se od SHA3-256 jedním výplňovým bajtem. BLAKE2b/BLAKE2s jsou rychlé moderní hashe navržené pro softwarové použití; RIPEMD-160 je starší návrh, stále používaný v kontextu Bitcoinu a OpenPGP. SHA-1 a MD5 jsou kryptograficky prolomené pro nepřátelské vstupy, ale zůstávají správné a široce používané pro deduplikaci, starší systémy a nepřátelské kontrolní součty — nikdy je nepoužívejte tam, kde by útočník mohl zvolit obsah. Žádný hash dnes není „odolný vůči kvantovým počítačům“ v tom smyslu, že kvantové počítače ohrožují nejprve podpisy a výměnu klíčů — Groverův algoritmus pouze půlí efektivní délku hashe, takže SHA-256 už pohodlně leží nad praktickou mezí. Hashe jsou deterministické: stejné bajty vždy dají stejný otisk, což je přesně to, co je činí užitečnými pro ověření, že stažený soubor nebo konfigurační soubor je neporušený.
Hledáte čínský národní hash?
SM3 (GB/T 32905-2016), otisk předepsaný pro čínskou komerční kryptografii, není součástí této stránky — má vlastní nástroj s podporou HMAC-SM3 na stránce Generátor hashů SM3, spolu se zbytkem sady SM: SM4 (bloková šifra), SM2 (podpisy a šifrování) a SM9 (kryptografie založená na identitě).
Generátor hashů — každý algoritmus vysvětlen od začátku
Jednou větou: kryptografická hashovací funkce je jednosměrný mixér — vezme libovolný počet bajtů a stlačí je do otisku pevné délky tak, že stejný vstup vždy dá stejný otisk, ale otisk vám neřekne, jak vstup znovu sestavit. Tato stránka spouští jedenáct takových funkcí zcela uvnitř karty prohlížeče.

Každý algoritmus níže je vysvětlen stejnými čtyřmi kroky: co je to prostými slovy, intuice o tom, jak funguje, bez vzorců, zda jej dnes ještě používat a nejčastější chyby, které s ním lidé dělají.

MD5

Co to je. MD5 (1992) stlačí libovolný vstup do otisku o 128 bitech (32 hexadecimálních znaků). Byl navržen tak, aby byl rychlý na počítačích 90. let, a je to tak — právě proto je stále všude: stránky ke stahování softwaru, cache pro deduplikaci souborů, starší databázové klíče.

Jak to funguje, intuitivně. Vstup se rozřeže na bloky po 64 bajtech. Každý blok se čtyřikrát promíchá do válcovacího stavu o 128 bitech (čtyři mírně odlišná kola míchání) a po posledním bloku se stav vytiskne jako otisk. Míchání je postaveno ze sčítání, rotací a vyhledávání v tabulkách — tehdy levné, dnes také.

Měli byste jej používat? Pro kontrolní součty tam, kde vás nikdo nepodvádí — zjištění poškozeného stahování, hledání duplicitních souborů — ano, poškození hlásí stále spolehlivě. Pro cokoli protivníkovského ne: od roku 2004 mohou badatelé v řádu sekund vytvořit dva různé soubory se stejným MD5 a skutečné padělky certifikátů s kolizemi MD5 se objevily v roce 2008. Berte jej jako sériové číslo, ne jako zámek.

Časté chyby. Používání MD5 pro hesla (příliš rychlé — viz Generátor hashů hesel, co tam patří místo toho); důvěra v soubor proto, že „MD5 sedí“, když útočník zveřejnil také MD5; a vložení celého řádku MD5 (file) = hash místo samotného hashe — pole Ověřit výše přijímá obojí.

SHA-1

Co to je. SHA-1 (1995, NSA) vytváří otisk o 160 bitech (40 hex znaků). Dvacet let byl výchozím hashem integrity pro Git, certifikáty TLS a podpisy PGP.

Jak to funguje, intuitivně. Stejný rodinný recept jako MD5, ale se 160bitovým stavem, 80 koly míchání na blok o 64 bajtech a širší sadou operací. Další kola měla ztížit zpětné inženýrství mixéru.

Měli byste jej používat? Ne pro cokoli protivníkovského. Teoretický zlom se stal prakticky proveditelným v roce 2017, kdy Google vytvořil dva různé soubory PDF se stejnými hodnotami SHA-1 (útok SHAttered, asi 6500 CPU-let). Git stále ukládá objekty pod SHA-1, ale bere jej jen jako identifikátor, a od té doby přidal detekci kolizí. Pro novou práci používejte SHA-256 nebo SHA-3.

Časté chyby. Přesvědčení, že 160 bitů „je ještě dost dlouhých“ — zlom se týká vnitřní struktury, ne hrubé síly; a záměna RIPEMD-160 se SHA-1, protože obojí má 40 hex znaků (pole identifikátoru výše je rozlišuje).

SHA-2: SHA-256, SHA-384 a SHA-512

Co to je. Rodina SHA-2 (2001, NSA) je pracovním koněm moderní kontroly integrity. SHA-256 dává 256 bitů (64 hex znaků), SHA-512 dává 512 bitů a SHA-384 je SHA-512 s výsledkem zkráceným na 384 bitů — užitečné, když protokol předepisuje kratší značku.

Jak to funguje, intuitivně. Bloky po 64 bajtech (nebo 128 bajtech u variant 512bitových) se skládají do stavu z osmi slov přes 64 (nebo 80) kol kroků přidání-rotace-míchání. Na rozdíl od MD5 nejprve rozpínají rozvrh každý blok do rozšířeného bufferu, a to je to, co porazilo styl útoku, který lámal MD5 a SHA-1. Zajímavost: na 64bitových procesorech je SHA-512 rychlejší než SHA-256, protože zpracuje dvojnásobek dat v každém kole 64bitovou aritmetikou.

Měli byste jej používat? Ano — SHA-256 je dnes výchozí odpovědí pro kontrolní součty souborů, podepisování kódu a otisky certifikátů, bez známého praktického zlomu po dvou desetiletích analýzy. Použijte SHA-384/512, když chcete větší rezervu nebo když platforma běží rychleji.

Časté chyby. Používání samotného SHA-256 pro hesla — je to rychlý hash a rychlost je tam nepřítel (použijte bcrypt/scrypt/Argon2id); a záměna délky otisku se silou pro nastavení odolnosti proti protivníkovským kolizím — délka určuje jen strop.

SHA-3 (SHA3-256 / SHA3-512) a Keccak-256

Co to je. SHA-3 (2015, standardizován z podání Keccak týmem Bertoni, Daemen, Peeters a Van Assche) je třetím hashovacím standardem NIST. Nesdílí nic s vnitřní strukturou SHA-2 — byl vybrán přesně proto, aby byl nezávislou záložou, kdyby SHA-2 někdy padl.

Jak to funguje, intuitivně. Místo míchání bloků skrz malý stav Keccak opakovaně „nasává a vytlačuje“: vstup se bit po bitu absorbuje do houbovité struktury 5×5×64 bitů, celá houba se promíchá pevnou permutací (24 kol bitových operací přes celý stav) a bity otisku se poté vytlačí ven. Obraz houby je celá myšlenka: kapacitní bity se nikdy nevypisují a právě ony dělají funkci jednosměrnou.

Keccak-256 vs SHA3-256. Liší se přesně jedním výplňovým bajtem. Původní podání týmu Keccak doplnilo poslední blok bajtem 0x01; NIST změnil standardní výplň na 0x06 (oddělení domén, které používá Keccak z éry SHA-2). Ethereum přijalo původní výplň, takže jeho „keccak256“ se liší od standardního SHA3-256 pro každý vstup. Tato stránka nabízí obojí, zaškrtávané zvlášť.

Měli byste jej používat? Ano — buď jako primární volbu, když politika chce algoritmus mimo SHA-2, nebo všude tam, kde jej ekosystém už používá. Časté chyby: předpoklad, že SHA3-256 a Keccak-256 jsou zaměnitelné (nejsou — porovnejte dva řádky, které tato stránka vytvoří pro stejný vstup); a předpoklad, že „SHA-3“ nahrazuje SHA-2 — obojí je bezpečné, SHA-2 zůstává rozšířenější.

RIPEMD-160

Co to je. RIPEMD-160 (1996, konsorcium RIPE evropských akademiků, posílené Dobbertinem, Bosselaersem a Preneelem) vydává 160 bitů. Je to čistě evropský návrh, záměrně nezávislý na rodině SHA navržené NSA.

Jak to funguje, intuitivně. Každý blok po 64 bajtech zpracují dvě paralelní linie po 80 kolech s různými konstantami a velikostmi rotací; na konci se obě linie a starý stav spojí. Dvoukolejná struktura byla způsobem, jak se autoři bránili diferenciálním útokům, které lámaly jiné hashe z 90. let.

Měli byste jej používat? V praxi přežívá hlavně uvnitř jiných systémů: adresy Bitcoin hashují veřejné klíče jako RIPEMD-160(SHA-256(pk)), starší klíče OpenPGP jej nabízejí jako volbu hashe a je tradičním hashem pro kusy BitTorrent v1 vedle SHA-1. Nemá žádný praktický útok na kolize, ale velikost 160 bitů mu dává nejmenší bezpečnostní rezervu na této stránce. Pro nové samostatné použití dávejte přednost SHA-256 nebo SHA-3.

Časté chyby. Přesvědčení, že dvě paralelní linie jej dělají „dvakrát silnějším“ — velikost výstupu je to, co omezuje odolnost proti kolizím; a záměna se SHA-1 (stejná délka 40 hex znaků; pole identifikátoru výše uvádí obě možnosti vedle sebe).

BLAKE2b-512 a BLAKE2s-256

Co to je. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn a Winnerlein) je hash navržený pro rychlost softwaru: BLAKE2b cílí na 64bitové platformy s výstupem až 512 bitů, BLAKE2s na 32bitové platformy s výstupem až 256 bitů.

Jak to funguje, intuitivně. Pochází z finalisty soutěže SHA-3 BLAKE, jehož jádro je klíčová permutace vypůjčená od proudové šifry ChaCha: matice 4×4 slov se míchá střídavě kroky mísení sloupců a diagonál — jako když zamícháte mřížku nejprve shora dolů a pak podél diagonál — a to 12 (BLAKE2b) nebo 10 (BLAKE2s) kol na blok. Protože tyto kroky krásně zapadají do instrukcí procesoru, je BLAKE2 často rychlejší než MD5 a přitom nabízí bezpečnost srovnatelnou s SHA-3.

Měli byste jej používat? Ano — je to plně moderní, nerozlomený návrh, oblíbený v softwaru citlivém na výkon (integrita balíčků v některých ekosystémech, obsahově adresovaná úložiště, deduplikace záloh) a jako rychlý MAC. Na této stránce dává BLAKE2b-512 nejdelší otisky a BLAKE2s-256 kompaktní moderní volbu.

Časté chyby. Myšlenka „rychlejší musí znamenat slabší“ — BLAKE2 je rychlejší konstrukcí, ne zkracováním rohů; a neuvědomit si, že BLAKE2 také přijímá klíč (čímž je MAC) nebo personalizační řetězec — tato stránka jej vždy používá v prostém režimu bez klíče.

Jak číst pole Ověřit a Určit

Ověřit. Pole pro ověření normalizuje cokoli vložíte — velká nebo malá písmena, dvojtečky po dvou číslicích, předponu sha256=, obal ve stylu BSD SHA256 (file) = hash, řádek GNU md5sum s názvem souboru za hashem, zbloudilé \r\n — a poté přepočítá každý zaškrtnutý algoritmus nad vaším aktuálním vstupem (text nebo zvolený soubor) a ohlásí každý algoritmus, který sedí. Zelená shoda znamená „tyto bajty jsou přesně to, co vydavatel hashoval“; červená znamená, že žádný zaškrtnutý algoritmus je nevytvořil — zkuste zaškrtnout více algoritmů nebo zkontrolovat, zda vložení nebylo zkrácené.

Určit. Pole identifikátoru nic nehashuje; čte tvar řetězce. Délka zužuje kandidáty: 32 hexadecimálních znaků může být MD5, 40 může být SHA-1 nebo RIPEMD-160, 64 může být SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Předpony odhalují hashe hesel ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — to je jiný druh a záměrně je tato stránka nepočítá (viz Generátor hashů hesel). Řetězec s +, / a =, jehož délka je násobkem 4, je spíše data kódovaná Base64 než hex otisk; nástroj jej dekóduje a uvede délku v bajtech, která by odpovídala.

Co identifikace může a nemůže říct. Délka a sada znaků jsou otisky formátu, ne důkaz algoritmu: dva řetězce po 64 hex znacích mohou pocházet z SHA-256 nebo ze zkrácené SHA-512. Identifikátor seřadí možnosti; pole Ověřit je to, které skutečně dokáže, s jakým algoritmem se vaše bajty shodují.

Všech jedenáct na jeden pohled
Algoritmus Štěpení Vymyšleno Otisk „The quick brown fox jumps over the lazy dog“
MD5128 bitů19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bitů19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bitů2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bitů2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bitů200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bitů201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bitů201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bitůpřed rokem 20154d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bitů199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bitů2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bitů2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Každý otisk v tabulce výše vytvářejí motory právě této stránky — zaškrtněte všechny algoritmy, klikněte na Ukázka a porovnejte. Řádky SHA-3, Keccak, RIPEMD-160 a BLAKE2 pocházejí z vlastního jádra crypto-shared.js, které používají kryptografické nástroje tohoto webu.

Časté dotazy

Kterému poli mám u stažení věřit? Poli Ověřit se zaškrtnutým SHA-256 — většina vydavatelů dnes podepisuje SHA-256 nebo SHA-512. Pole Určit pouze pojmenovává kandidáty; nikdy nic nedokazuje o vašem souboru.

Proč je Keccak-256 vůbec v seznamu? Protože Ethereum, Swarm a několik účetních systémů se přidrželo výplně z doby před standardem. Ověřujete-li keccak256 z Ethereum, musíte použít tento řádek, ne SHA3-256.

Mohou dva různé vstupy sdílet otisk? V teorii ano — nekonečně mnoho vstupů se zobrazí do konečné množiny otisků (Dirichletův princip). V praxi je nalezení takového páru dříve, než vychladne vesmír, to, oč jde v „odolnosti proti kolizím“, a každý algoritmus výše kromě MD5 a SHA-1 stále obstojí.

Jsou hashe šifrování? Ne. Šifrování je vratné s klíčem; hash je jednosměrný mixér. Nic na této stránce nelze „dešifrovat“ zpět na váš text — a to je vlastnost, ne omezení.