Vypočítat checksum souboru

vypočítá kontrolní součet (checksum) souboru v MD5, SHA-1, SHA-256 nebo SHA-512. Ideální pro ověření integrity stažení nebo detekci poškození

Co je checksum?

Checksum (kontrolní součet, někdy psaný chksum) je unikátní digitální otisk vypočítaný z obsahu souboru hashovacím algoritmem. Tento otisk, neboli fingerprint, je obvykle reprezentován hexadecimálním řetězcem pevné délky.

Základní vlastnost dobrého hashovacího algoritmu je lavinový efekt: jakákoli modifikace zdrojového souboru, i jediný bit, produkuje radikálně odlišný checksum. Dva soubory s přesně stejným obsahem vždy produkují stejný checksum, nezávisle na názvu souboru, datu modifikace nebo operačním systému.

Checksum slouží primárně k ověření integrity souboru: pokud otisk přepočítaný lokálně odpovídá tomu deklarovanému vydavatelem, soubor je nedotčený. Jinak byl alterován, korumpován při přenosu, nebo modifikován.

K čemu konkrétně slouží?

  • Ověření integrity stažení: Linux ISO (Debian, Ubuntu, Fedora, Arch), Docker image, Windows installer nebo open source archiv systematicky publikují oficiální checksum. Přepočítat ho lokálně potvrzuje, že soubor je kompletní a nealterován.
  • Detekce korupce při přenosu: přerušené stažení, vadný diskový sektor, nestabilní RAM, vrtošivý síťový kabel, nebo kopie na USB klíč mohou korumpovat bajty. Checksum okamžitě odhaluje tyto tiché chyby.
  • Otisk podpisu: potvrdit, že soubor pochází od očekávaného autora, když je checksum distribuován bezpečným kanálem (HTTPS, GPG podpis). Je to mechanismus za Linux package repozitáři a application stores.
  • Verzování a caching: Git identifikuje každý commit, blob a strom SHA-1 hashem (migrace k SHA-256). CDN a web bundlery (Webpack, Vite, esbuild) injektují hash do názvu souboru (app.4a8f2c.js) pro automatickou invalidaci browser cache při změně.
  • Detekce duplicit a deduplikace: inkrementální zálohy (Borg, Restic, rsync), souborové systémy (ZFS), a object storage identifikují identické bloky jejich hashem pro uložení jediné kopie.
  • Validace uploadu: klient pošle očekávaný checksum, server ho přepočítá při příjmu. AWS S3 například akceptuje Content-MD5 nebo x-amz-checksum-sha256 header pro odmítnutí korumpovaného uploadu.
  • Threat intelligence a antivirus: VirusTotal a antivirus vydavatelé indexují malicious soubory jejich SHA-256 hashem, což umožňuje detekci bez přenosu kompletního binárky.

Podporované algoritmy a rozdíly

  • MD5 (128 bitů, 32 hexadecimálních znaků): rychlý, široce rozšířený, ale kryptograficky prolomený. MD5 kolize jsou vypočítatelné v několika sekundách na běžném hardware od roku 2004. Použít pouze pro nemalicious ověření integrity (stažení proti přerušení sítě, lokální záloha). Zakázán pro jakoukoli bezpečnostní funkci, podpis, nebo autentifikaci.
  • SHA-1 (160 bitů, 40 hexadecimálních znaků): deprecated pro kryptografii od SHAttered útoku 2017, který demonstroval skutečnou kolizi mezi dvěma odlišnými PDF. Git ho stále používá defaultně, ale migruje na SHA-256. Již nepoužívat pro podpis nebo autentifikaci.
  • SHA-256 (256 bitů, 64 hexadecimálních znaků): moderní standard, člen rodiny SHA-2. Základ moderních TLS certifikátů, podpisů Linux balíčků (apt, dnf, pacman), Bitcoinu, a oficiálních kontrol integrity. Pomalejší než MD5, ale bezpečný ve stavu současného poznání.
  • SHA-512 (512 bitů, 128 hexadecimálních znaků): 64-bit varianta SHA-2. Manipuluje 64-bit slovy nativně, což ho činí někdy rychlejším než SHA-256 na 64-bit CPU. Delší otisk, vyšší bezpečnostní marže.
  • CRC32 (32 bitů, 8 hexadecimálních znaků): nekryptografický, ultra rychlý, navržený specificky pro detekci přenosových chyb. Používán Ethernetem, ZIPem, PNG, gzip. Neochraňuje proti malice: útočník může triviálně vyfalešovat soubor se stejným CRC32 jako jiný. Vhodný pro rychlé hardware kontroly, ne pro bezpečnost.

Případy použití

  • Ověřit Linux ISO: Debian, Ubuntu, Fedora a Arch publikují SHA-256 a SHA-512 každého oficiálního image, často kontra-podepsané v GPG.
  • Validovat podepsaný binárka: potvrdit, že stažený spustitelný soubor z mirror nebyl nahrazen verzí s pastí.
  • Porovnat dvě verze: před a po modifikaci, identický checksum prokazuje bit-po-bitu identitu bez nutnosti přenosu souborů.
  • Validace uploadu: klient pošle checksum, server ho přepočítá při příjmu pro potvrzení absence korupce.
  • Fingerprinting: detekce botů nebo známých souborů v databázích otisků (antivirus, threat intelligence, vyhledávání duplikátů).

Jak ho používat

  1. Přetáhněte soubor do určené zóny, nebo použijte tlačítko výběru.
  2. Vyberte algoritmus: MD5, SHA-1, SHA-256, SHA-512 nebo CRC32.
  3. Checksum se zobrazí, připravený ke kopírování.
  4. Porovnejte získanou hodnotu s referenční (publikovanou vydavatelem nebo uloženou lokálně).

Výpočet se provádí lokálně ve vašem prohlížeči, bez odesílání souboru na vzdálený server. Obsah zůstává důvěrný.

Jak ověřit stažení checksumem?

Standardní postup ověření je následující:

  1. Oficiální stránka publikuje očekávaný checksum, například d41d8cd98f00b204e9800998ecf8427e pro MD5 nebo 64znakový řetězec pro SHA-256.
  2. Stáhněte soubor.
  3. Vypočtěte jeho checksum, buď tímto nástrojem, nebo příkazovou řádkou.
  4. Porovnejte: pokud jsou oba řetězce přesně identické, znak po znaku, soubor je nedotčený. Pokud se liší, i jediným znakem, soubor je korumpován nebo zmanipulován: nepoužívejte ho, stáhněte ho znovu.

V příkazové řádce pod Linuxem:


# Spočítat checksum
md5sum soubor.iso
sha1sum soubor.iso
sha256sum soubor.iso
sha512sum soubor.iso
cksum soubor.iso          # CRC32 + velikost

# Automaticky ověřit ze .sha256 souboru publikovaného vydavatelem
sha256sum -c soubor.iso.sha256
# Zobrazí: "soubor.iso: OK" pokud checksum odpovídá

Pod macOS:


md5 soubor.iso
shasum -a 1 soubor.iso
shasum -a 256 soubor.iso
shasum -a 512 soubor.iso

# Ověření z referenčního souboru
shasum -a 256 -c soubor.iso.sha256

Pod Windows (PowerShell):


Get-FileHash soubor.iso -Algorithm MD5
Get-FileHash soubor.iso -Algorithm SHA1
Get-FileHash soubor.iso -Algorithm SHA256
Get-FileHash soubor.iso -Algorithm SHA512

# Porovnat s očekávanou hodnotou
(Get-FileHash soubor.iso -Algorithm SHA256).Hash -eq "ABC123..."

Rychlé porovnání algoritmů

Algoritmus Velikost Rychlost Doporučené použití
CRC32 32 bitů Velmi rychlý Detekce síťových nebo úložných chyb, nekryptografický
MD5 128 bitů Rychlý Pouze nehostilní integrita, vyhnout se v bezpečnosti
SHA-1 160 bitů Rychlý Zastaralý, starší kompatibilita (Git, staré balíčky)
SHA-256 256 bitů Střední Současný standard, ověření integrity a podpisy
SHA-512 512 bitů Rychlý v 64 bitech Ověření integrity, vyšší bezpečnostní marže

FAQ

MD5 nebo SHA-256 pro ověření mého ISO?

SHA-256 ve výchozím nastavení. Téměř všechny moderní Linux distribuce publikují SHA-256 a SHA-512, někdy spolu s MD5 pro historickou kompatibilitu. Pokud vydavatel publikuje pouze MD5 a obáváte se kompromitace, vyžadujte SHA-256 nebo ověřte GPG podpis souboru checksumů. Pokud se obáváte pouze korupce při stažení, MD5 technicky stačí.

Garantuje checksum bezpečnost mého souboru?

Ne, ne sám o sobě. Checksum prokazuje integritu, ne autenticitu. Pokud útočník kontroluje download server, může publikovat modifikovaný soubor a jeho modifikovaný checksum. Skutečná bezpečnost přichází z digitálního podpisu (GPG, code signing), který váže checksum k známému soukromému klíči. Vždy získávejte checksum přes HTTPS nebo, lépe, přes ověřitelný GPG podpis.

Můj checksum neodpovídá, co dělat?

Nejprve ověřte, že porovnáváte správný algoritmus: SHA-256 nemůže odpovídat SHA-1. Pak zopakujte stažení, ideálně z jiného mirroru: nejčastější příčina je síťové přerušení. Pokud rozdíl přetrvává po několika pokusech, podezřívejte mirror kompromitaci: zpět ke zdroji a ověřte GPG podpis pokud existuje. Nikdy nespouštět nebo nepoužívat soubor, dokud checksum neodpovídá.

Proč je MD5 deprecated?

MD5 trpí praktickými kolizemi: je možné konstruovat dva odlišné soubory se přesně stejným MD5 hashem v několika sekundách. Tato vlastnost porušuje samotnou funkci kryptografického hashe. Konkrétně, útočník může vytvořit malicious binárku se stejným MD5 jako legitimní binárka. SHA-1 trpí stejným problémem od 2017 (SHAttered útok). Pouze SHA-256, SHA-512 a jejich varianty zůstávají považovány za bezpečné v 2026.

Rozdíl mezi hashem a checksumem?

Hash je generický výsledek hashovací funkce. Checksum je hash použitý specificky pro ověření integrity dat. Všechny checksumy jsou hashe, ale ne všechny hashe jsou checksumy: hash hesla (bcrypt, argon2) slouží autentifikaci, hash v hash tabulce slouží rychlé indexaci. Termín fingerprint nebo otisk je běžné synonymum checksumu.

Stačí CRC32 pro mé potřeby?

CRC32 stačí, pokud hledáte pouze detekci náhodné korupce na nehostilním kanálu: interní síťový přenos, ověření ZIP archivu, kontrola koherence v paměti. S pouhými 32 bity mají dva náhodné soubory přibližně 1 šanci ze 4 miliard mít stejný CRC32 náhodou, což je dostatečné pro detekci chyb. CRC32 je nedostatečný, jakmile útočník může ovlivnit obsah: je triviální vyfalešovat soubor s cílovým CRC32. Pro jakékoli ověření před malicious rizikem použijte SHA-256.

Proč se můj checksum liší podle OS?

Checksum stejného binárního obsahu je identický všude. Pokud získáváte dva odlišné výsledky, je to proto, že se soubor skutečně liší: konce řádků (CRLF Windows oproti LF Unix) po FTP přenosu v textovém režimu, modifikované kódování textu při otevření, metadata přidaná systémem (Spotlight resolution macOS, rozšířené atributy), nebo tichá rekomprese transfer klientem. Vždy přenášet v binárním režimu.

Checksum nebo digitální podpis?

Checksum prokazuje, že soubor nebyl alterován mezi publikací a příjmem, za podmínky získání checksumu bezpečným kanálem. Digitální podpis (GPG, PGP, code signing Authenticode) navíc prokazuje identitu autora díky soukromému klíči. Podpis obklopuje a posiluje checksum: standardní praxe u Debianu, Toru, nebo Bitcoin Core je GPG podepsat soubor checksumů, pak použít tyto checksumy pro ověření binárek.

Často kladené otázky

Je soubor odeslán na server pro výpočet checksumu?

Ne. Výpočet se provádí kompletně ve vašem prohlížeči díky Web Crypto API a lokálním JavaScript rutinám. Obsah souboru neopouští váš počítač, což umožňuje hashovat s plnou důvěrností citlivé dokumenty, šifrované archivy nebo dumpy databáze. Tento přístup také garantuje stabilní výkon, nezávislý na šířce pásma.

Jakou velikost souboru mohu hashovat tímto nástrojem?

Výpočet probíhá streamingem v blocích, takže limit závisí v podstatě na paměti a čase, který váš prohlížeč může operaci věnovat. Několik set megabajtů projde bez obtíží na standardním počítači. Pro soubory několika gigabajtů (kompletní ISO, objemný dump) preferujte systémovou příkazovou řádku (sha256sum, Get-FileHash), která lépe využívá diskové a CPU zdroje.

Jaký je rozdíl mezi hashováním souboru a hashováním textu?

Algoritmus je přesně stejný, mění se pouze vstup. Pro text hashujeme sekvenci bajtů řetězce v daném kódování (typicky UTF-8). Pro soubor hashujeme surový binární obsah, bajt po bajtu, včetně případných integrovaných headerů nebo metadat. Proto textový soubor a jeho obsah zkopírovaný do formuláře mohou dávat odlišné checksumy (BOM, konce řádků, kódování).

Proč se checksum ZIP archivu mění při každém vytvoření?

Většina archivátorů (ZIP, TAR.GZ, 7z) ukládá proměnlivá metadata jako datum vytvoření, pořadí souborů nebo kompresní indikátory. Znovuvytvoření archivu se stejným obsahem tedy produkuje odlišnou binárku a odlišný checksum. Pro získání reprodukovatelných archivů použijte nástroje jako diffoscope, strip-nondeterminism nebo --mtime a --sort=name volby tar.

Existují rychlejší alternativy než SHA-256 pro ověření integrity?

Ano. BLAKE2 a BLAKE3 jsou moderní kryptografické hashovací funkce, navržené být rychlejší než SHA-256, přitom nabízejí ekvivalentní nebo vyšší úroveň bezpečnosti. BLAKE3 zvláště dobře využívá SIMD a multi-core paralelismus, což ho činí velmi efektivním na velkých souborech. Pro čistou nehostilní detekci chyb je xxHash nepřekonatelný v rychlosti, ale zůstává nekryptografický.

Mohu porovnat dva soubory bez výpočtu jejich celého hashe?

Pro dva lokální soubory je přímé binární porovnání (cmp pod Unix, fc /b pod Windows) rychlejší než hashovat oba. Hash je užitečný, když soubory nejsou na stejném počítači, nebo když chceme zachovat krátký otisk bez uchování originálu. Pro časté kontroly na velkých objemech indexujte hashe v databázi a porovnávejte otisky místo kompletních souborů.

Ukázka požadavku

curl -X POST https://cdrn.fr/api/v1/tools/hash-file-generator/execute \
  -F "file=@/path/to/file" \
  -F "algorithm=adler32"

Vstupní schéma

Pole Typ Povinné Výchozí
file file
algorithm choice (adler32, crc32, crc32b, crc32c, fnv132, fnv164, fnv1a32, fnv1a64, gost, gost-crypto, haval128,3, haval128,4, haval128,5, haval160,3, haval160,4, haval160,5, haval192,3, haval192,4, haval192,5, haval224,3, haval224,4, haval224,5, haval256,3, haval256,4, haval256,5, joaat, md2, md4, md5, murmur3a, murmur3c, murmur3f, ripemd128, ripemd160, ripemd256, ripemd320, sha1, sha224, sha256, sha3-224, sha3-256, sha3-384, sha3-512, sha384, sha512, sha512/224, sha512/256, snefru, snefru256, tiger128,3, tiger128,4, tiger160,3, tiger160,4, tiger192,3, tiger192,4, whirlpool, xxh128, xxh3, xxh32, xxh64)

tento nástroj očekává soubor - použijte Content-Type multipart/form-data místo application/json

Koncové body

  • GET https://cdrn.fr/api/v1/tools - vypíše všechny dostupné nástroje
  • GET https://cdrn.fr/api/v1/tools/hash-file-generator - získá schéma tohoto nástroje
  • POST https://cdrn.fr/api/v1/tools/hash-file-generator/execute - spustí tento nástroj s JSON payloadem