Utilia

Generátor hashů

Vytvoř hash MD5, SHA-1, SHA-256 a SHA-512 z textu nebo souborů libovolné velikosti a ověř kontrolní součty. Vše běží ve tvém prohlížeči.

Hash
Text se kóduje jako UTF-8.
Algoritmy

Jak používat generátor hashů

  1. V části Hash zvol Text nebo Soubory.
  2. U textu ho napiš nebo vlož do pole Text k zahashování. Hashe se aktualizují při psaní a tlačítko Hash je na požádání přepočítá.
  3. U souborů přetáhni jeden nebo více souborů do oblasti pro upuštění, nebo na ni klikni a vyber je. U velkých souborů se zobrazí ukazatel průběhu s tlačítkem Zrušit.
  4. Vyber potřebné Algoritmy (MD5, SHA-1, SHA-256, SHA-512) a Výstupní formát: šestnáctkově malými písmeny, šestnáctkově velkými písmeny nebo Base64.
  5. Chceš-li ověřit stažený soubor, vlož zveřejněný kontrolní součet do pole Porovnat s očekávaným hashem (volitelné). Nástroj ti řekne, který algoritmus odpovídá, nebo že neodpovídá žádný.

Co je hash?

Kryptografická hashovací funkce změní libovolný vstup, ať už slovo, nebo 50GB obraz disku, na krátký otisk pevné velikosti. Stejný vstup dává vždy stejný hash a změna jediného bitu vstupu změní výsledek zcela. Z hashe nelze vstup získat zpět.

Algoritmus Velikost výstupu Délka v šestnáctkové soustavě Stav
MD5 128 bitů 32 znaků Prolomený: jen pro kontrolní součty
SHA-1 160 bitů 40 znaků Prolomený: kolize prokázány v roce 2017
SHA-256 256 bitů 64 znaků Bezpečný, současný standard
SHA-512 512 bitů 128 znaků Bezpečný, na 64bitových procesorech často rychlejší

Například hash SHA-256 řetězce abc je ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Ověření staženého souboru

Vydavatelé softwaru často uvádějí kontrolní součet SHA-256 vedle svých souborů. Po stažení otevři režim Soubory, přetáhni soubor a vlož zveřejněnou hodnotu do pole pro porovnání. Shoda dokazuje, že se soubor při stahování nepoškodil a je totožný s tím, který vydavatel zahashoval. Nedokazuje, že je vydavatel důvěryhodný. K tomu musí samotný kontrolní součet pocházet z důvěryhodného zdroje, například z webu s HTTPS nebo z podepsaného vydání.

Jak se zpracovávají velké soubory

Soubory se čtou lokálně a nikdy se nenahrávají. Soubory do 64 MB se hashují na jeden průchod pomocí vestavěného rozhraní Web Crypto API ve tvém prohlížeči. Větší soubory se čtou po blocích o velikosti 4 MB a předávají se přírůstkovým hashovacím funkcím, takže spotřeba paměti zůstává stálá a lze hashovat soubory o velikosti několika gigabajtů. Na běžném počítači počítej u SHA-256 s několika sty megabajty za sekundu.

Text, kódování a konce řádků

Hash se počítá z bajtů, ne ze znaků. Nástroj kóduje text jako UTF-8, což je standard na webu i ve většině programovacích jazyků. Pokud jinde dostaneš jiný výsledek, hledej skryté rozdíly: koncový nový řádek (echo "abc" | sha256sum hashuje abc\n, použij echo -n), konce řádků Windows (\r\n) nebo jiné kódování, například UTF-16.

Časté dotazy

Mohu k ukládání hesel použít MD5 nebo SHA-1?

Ne, ani čisté SHA-256. Tyto funkce jsou navrženy jako rychlé, takže útočník může zkoušet miliardy pokusů za sekundu. Hesla potřebují pomalý algoritmus se solí, například Argon2, bcrypt nebo scrypt.

Je MD5 ještě k něčemu?

Ano, k odhalení náhodného poškození, odstranění duplicitních souborů nebo k porovnání se starým seznamem kontrolních součtů. Na ochranu před úmyslnou manipulací se spoléhat nesmí, protože kdokoli může vytvořit dva různé soubory se stejným MD5.

Nahrávají se moje soubory?

Ne. Soubory čte a hashuje tvůj prohlížeč. Nic se neposílá na server, takže můžeš hashovat i důvěrné dokumenty.

Proč můj hash neodpovídá tomu z příkazového řádku?

Vstup je téměř vždy jiný: koncový nový řádek, mezery, konce řádků nebo kódování textu. U souborů se ujisti, že je stažení úplné. Jediný chybějící bajt dá zcela jiný hash.

Jaký je rozdíl mezi výstupem šestnáctkovým a Base64?

Jsou to dva způsoby zápisu týchž bajtů. Šestnáctková soustava je obvyklý formát kontrolních součtů, Base64 je kratší a používá se například v atributech Subresource Integrity (sha256-…). Pole pro porovnání přijímá obojí.