Kontrola hashov dávky súborov a overenie manifestu

Výberom alebo pretiahnutím mnoho súborov naraz táto stránka vypočíta digest MD5, SHA-1, SHA-256, SHA-384 alebo SHA-512 pre každý z nich, úplne vo vnútri prehliadača. Potom sa výsledky môžu kopírovať ako riadky kompatibilné so sha256sum do poznámok k vydaniu, alebo sa vloží manifest kontrolných súčtov (SHA256SUMS, .sha256, .sfv, výstup BSD openssl dgst) a stránka oznámi, ktoré súbory sa overili, ktoré nesedia a ktoré chýbajú. Nič sa nikam nenahráva. Pre jeden súbor s ďalšími algoritmami: Generátor hashov.
Súbory sa sem pretiahnu, alebo sa kliknutím vyberú
Najviac 50 súborov, 200 MB každý. Súbory zostávajú na tomto počítači.
Nie sú vybrané žiadne súbory.
— hexadecimálny výstup; treba vybrať aspoň jeden.
Kliknutím na ľubovoľnú bunku digestu sa skopíruje. Názvy a veľkosti sa vždy vypisujú, takže tabuľka slúži aj ako prehľad veľkostí súborov v dávke.
Tabuľka digestov sa zobrazí tu, keď sa vyberú súbory a stlačí sa Vypočítať.
Vloží sa manifest v štýle GNU (hash  názov), BSD (SHA256 (názov) = hash), SFV (názov crc32) alebo obyčajnom (sha256=hash), alebo sa nahrá samotný súbor .sha256 / SHA256SUMS / .sfv. Riadky začínajúce na ; sa považujú za komentáre.
Súkromie: každý digest sa počíta vstavaným JavaScriptom prehliadača a engine WebCrypto — súbory neopúšťajú túto kartu. Tip: po overení sťahovania sa stránka môže bezpečne zavrieť; nič sa neuložilo.

Čo je hashovanie dávky súborov?

Kontrolný súčet je krátky odtlačok súboru: bajty súboru sa prenesú cez hashovaciu funkciu a výsledkom je digest, ktorý sa takmer určite zmení, keď sa zmení aj jediný bajt súboru. Distribútori softvéru tieto digesty zverejňujú vedľa svojich súborov, aby sa dalo overiť, že prijatý súbor je ten, ktorý odoslali — sťahovanie nebolo useknuté ani poškodené a nikto nevymenil obsah.

Pre jeden súbor naraz je to v poriadku. Pri priečinku súborov alebo archív vydania s vnútorným manifestom SHA256SUMS, sa hodí verzia pre dávku: každý súbor zahashovať raz a potom skontrolovať každý riadok manifestu voči zodpovedajúcemu súboru. Presne to automatizuje táto stránka.

Formáty manifestu, ktoré táto stránka číta

ŠtýlPríklad riadkuKde sa s ním možno stretnúť
GNU900150983c...  hello.txtvýstup sha256sum / md5sum, súbory SHA256SUMS v linuxových vydaniach
BSDSHA256 (hello.txt) = 900150983c...openssl dgst -sha256 na macOS/BSD
SFVhello.txt 1A2B3C4Dsúbory Simple File Verification, staré binárne newsgroupy
obyčajnýsha256=ba7816bf...stránky na stiahnutie, poznámky k vydaniu, Docker checksums

Dĺžka samotného hashu určuje algoritmus: 32 hexadecimálnych znakov znamená MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384 a 128 SHA-512 — takže riadky vo formáte GNU nemusia hovoriť, ktorý program ich vytvoril.

Ako to funguje v skratke

Každý súbor sa prečíta raz cez FileReader prehliadača a odovzdá sa crypto.subtle.digest (rodina SHA) a lokálnej implementácii MD5. Digesty sa zakódujú do hexadecimálnej podoby a zarovnajú vedľa položiek manifestu; súbor sa overí len vtedy, keď sa vypočítaný digest zhoduje s očakávaným znak po znaku. Riadky SFV obsahujú CRC-32 namiesto kryptografického hashu — stránka ich označí ako nepodporované, namiesto aby predstierala, že CRC je digest.

Časté chyby

„Všetky súbory hlásia nezhodu.“ — obvyklou príčinou je manifest vytvorený pre inú verziu sťahovania. Najprv sa skontrolujú názvy súborov: porovnávač porovnáva názvy bez cesty, takže dist/app-1.2.bin sa zhoduje s riadkom manifestu pre app-1.2.bin. „SHA-1 overený, takže je súbor bezpečný?“ — nie. Overenie dokazuje, že bajty zodpovedajú tomu, čo vydal vydavateľ; či je vydavateľ dôveryhodný, je iná otázka. A SHA-1 je od roku 2017 prelomený kolíziami, takže ak je možnosť výberu, sa dajú prednostne použiť manifesty SHA-256.

FAQ

Je hashovanie veľkého súboru pomalé? — zhruba sekundu na 200 MB na bežnom počítači; riadok priebehu ukazuje, ako ďaleko dávka pokročila.
Dá sa overiť manifest CRC-32 SFV? — riadky SFV sa načítajú a vypíšu, ale CRC-32 táto stránka nepočíta; na jednotlivé súbory sa použije nástroj CRC v kryptografickom hube.
Prečo len hexadecimálne? — manifesty v praxi sú hexadecimálne; digesty v Base64 sú doplnková funkcia.
Čo sa stane so súbormi? — nič: žiadny server, žiadne ukladanie, žiadna analytika; keď sa karta zavrie, každý bajt vstupu zmizne.