Utilia

Generátor hashov MD5, SHA-1, SHA-256

Vygeneruj hashe MD5, SHA-1, SHA-256 a SHA-512 textu alebo súborov ľubovoľnej veľkosti a over kontrolné súčty. Všetko beží v tvojom prehliadači.

Hash
Text sa kóduje v UTF-8.
Algoritmy

Ako používať generátor hashov

  1. V sekcii Hash vyber Text alebo Súbory.
  2. Pri texte ho napíš alebo vlož do Text na zahašovanie. Hashe sa aktualizujú počas písania; tlačidlo Hash ich na požiadanie prepočíta.
  3. Pri súboroch presuň jeden alebo viac súborov do vyhradenej oblasti alebo na ňu klikni a vyber ich. Pri veľkých súboroch sa zobrazí ukazovateľ priebehu s tlačidlom Zrušiť.
  4. Vyber potrebné Algoritmy (MD5, SHA-1, SHA-256, SHA-512) a Výstupný formát: hexadecimálne malými písmenami, hexadecimálne veľkými písmenami alebo Base64.
  5. Ak chceš overiť stiahnutý súbor, vlož zverejnený kontrolný súčet do Porovnať s očakávaným hashom (voliteľné). Nástroj ti povie, ktorý algoritmus sa zhoduje, alebo že sa nezhoduje žiadny.

Čo je hash?

Kryptografická hašovacia funkcia premení ľubovoľný vstup, či už slovo, alebo 50 GB obraz disku, na krátky odtlačok pevnej veľkosti. Rovnaký vstup dá vždy rovnaký hash a zmena jediného bitu vstupu zmení výsledok úplne. Hash sa nedá obrátiť, aby sa z neho získal pôvodný vstup.

Algoritmus Veľkosť výstupu Dĺžka v hex Stav
MD5 128 bitov 32 znakov Prelomený: iba kontrolné súčty
SHA-1 160 bitov 40 znakov Prelomený: kolízie preukázané v roku 2017
SHA-256 256 bitov 64 znakov Bezpečný, súčasný štandard
SHA-512 512 bitov 128 znakov Bezpečný, na 64-bitových procesoroch často rýchlejší

Napríklad hash SHA-256 reťazca abc je ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Overenie stiahnutého súboru

Vydavatelia softvéru často uvádzajú kontrolný súčet SHA-256 vedľa svojich súborov. Po stiahnutí otvor režim Súbory, presuň súbor a vlož zverejnenú hodnotu do poľa na porovnanie. Zhoda dokazuje, že súbor sa pri sťahovaní nepoškodil a je rovnaký ako ten, ktorý vydavateľ zahašoval. Nedokazuje, že vydavateľ je dôveryhodný. Na to musí samotný kontrolný súčet pochádzať z dôveryhodného zdroja, napríklad z webu s HTTPS alebo z podpísaného vydania.

Ako sa spracúvajú veľké súbory

Súbory sa čítajú lokálne a nikdy sa nenahrávajú. Súbory do 64 MB sa hašujú jedným prechodom pomocou vstavaného rozhrania Web Crypto API v prehliadači. Väčšie súbory sa čítajú po 4 MB blokoch a posielajú sa do inkrementálnych hašovacích funkcií, takže spotreba pamäte zostáva stála a dajú sa zahašovať súbory s veľkosťou niekoľkých gigabajtov. Na bežnom počítači počítaj pri SHA-256 s niekoľkými stovkami megabajtov za sekundu.

Text, kódovanie a konce riadkov

Hash sa počíta z bajtov, nie zo znakov. Nástroj kóduje text v UTF-8, čo je štandard na webe aj vo väčšine programovacích jazykov. Ak inde dostaneš iný výsledok, hľadaj skryté rozdiely: koncový znak nového riadka (echo "abc" | sha256sum hašuje abc\n; použi echo -n), konce riadkov Windows (\r\n) alebo iné kódovanie, napríklad UTF-16.

Často kladené otázky

Môžem MD5 alebo SHA-1 používať na ukladanie hesiel?

Nie, a ani samotné SHA-256. Tieto funkcie sú navrhnuté tak, aby boli rýchle, takže útočník môže skúšať miliardy pokusov za sekundu. Heslá potrebujú pomalý algoritmus so soľou, ako je Argon2, bcrypt alebo scrypt.

Je MD5 ešte na niečo dobré?

Áno, na zisťovanie náhodného poškodenia, odstraňovanie duplicitných súborov alebo porovnanie so starým zoznamom kontrolných súčtov. Nesmie sa naň spoliehať proti úmyselnej manipulácii, pretože ktokoľvek dokáže vytvoriť dva rôzne súbory s rovnakým MD5.

Nahrávajú sa moje súbory?

Nie. Súbory číta a hašuje tvoj prehliadač. Nič sa neodosiela na server, takže môžeš hašovať aj dôverné dokumenty.

Prečo môj hash nezodpovedá tomu z príkazového riadka?

Vstup je takmer vždy iný: koncový nový riadok, medzery, konce riadkov alebo kódovanie textu. Pri súboroch sa uisti, že sťahovanie je kompletné. Jediný chýbajúci bajt dá úplne iný hash.

Aký je rozdiel medzi výstupom hex a Base64?

Sú to dva spôsoby zápisu rovnakých bajtov. Hexadecimálny je obvyklý formát kontrolných súčtov; Base64 je kratší a používa sa napríklad v atribútoch Subresource Integrity (sha256-…). Pole na porovnanie prijíma oba.