Izračunati checksum datoteke
- Nadzorna plošča
- Dokumentacija
- API
Kaj je kontrolna vsota?
Kontrolna vsota (včasih črkovana chksum) je edinstven digitalni prstni odtis, izračunan iz vsebine datoteke z algoritmom zgoščevanja. Ta prstni odtis ali prstni odtis je na splošno predstavljen s šestnajstiškim nizom fiksne dolžine.
Temeljna lastnost dobrega algoritma zgoščevanja je učinek plazu: vsaka sprememba izvorne datoteke, tudi z enim samim bitom, povzroči radikalno drugačno kontrolno vsoto. Dve datoteki s popolnoma enako vsebino vedno ustvarita isto kontrolno vsoto, ne glede na ime datoteke, datum spremembe ali operacijski sistem.
Kontrolna vsota se v glavnem uporablja za preverjanje celovitosti datoteke: če lokalno preračunani prstni odtis ustreza tistemu, ki ga je objavil založnik, je datoteka nedotaknjena. V nasprotnem primeru je bil spremenjen, poškodovan med prevozom ali spremenjen.
Za kaj se dejansko uporablja?
- Preverite celovitost prenosa: ISO za Linux (Debian, Ubuntu, Fedora, Arch), slika Dockerja, namestitveni program za Windows ali odprtokodni arhiv sistematično objavlja uradno kontrolno vsoto. Lokalni ponovni izračun potrdi, da je datoteka popolna in nespremenjena.
- Zaznaj poškodbe med prenosom: prekinjen prenos, pokvarjen sektor diska, nestabilen RAM, napačen omrežni kabel ali kopija na ključu USB lahko poškoduje bajte. Kontrolna vsota takoj razkrije te tihe napake.
- Prstni odtis podpisa: potrdite, da datoteka prihaja od pričakovanega avtorja, ko se kontrolna vsota oddaja prek varnega kanala (HTTPS, podpis GPG). To je mehanizem za repozitoriji paketov in shrambami aplikacij za Linux.
- Različice in predpomnjenje: Git identificira vsako objavo, blob in drevo z razpršitvijo SHA-1 (preselitev na SHA-256). CDN-ji in spletni povezovalniki (Webpack, Vite, esbuild) vstavijo zgoščeno vrednost v ime datoteke (
app.4a8f2c.js), da ob spremembi samodejno razveljavijo predpomnilnik brskalnika. - Zaznavanje dvojnikov in odstranjevanje podvojitev: inkrementalne varnostne kopije (Borg, Restic, rsync), datotečni sistemi (ZFS) in shramba objektov prepoznajo enake bloke po zgoščeni vrednosti za shranjevanje samo ene kopije.
- Preverjanje nalaganja: odjemalec pošlje pričakovano kontrolno vsoto, strežnik jo po prejemu znova izračuna. AWS S3 na primer sprejme glavo
Content-MD5alix-amz-checksum-sha256za zavrnitev poškodovanega nalaganja. - Obveščanje o grožnjah in protivirusni program: VirusTotal in prodajalci protivirusnih programov indeksirajo zlonamerne datoteke s svojo zgoščeno vrednostjo SHA-256, kar omogoča zaznavanje brez prenosa celotne binarne datoteke.
Podprti algoritmi in razlike
- MD5 (128 bitov, 32 šestnajstiških znakov): hiter, široko razširjen, vendar kriptografsko pokvarjen. Trke MD5 je mogoče izračunati v nekaj sekundah na trenutni strojni opremi od leta 2004. Za uporabo samo za preverjanje celovitosti, ki ni zlonamerno (prenos proti izpadu omrežja, lokalno varnostno kopiranje). Prepovedano za katero koli varnostno funkcijo, podpis ali preverjanje pristnosti.
- SHA-1 (160 bitov, 40 šestnajstiških znakov): zastarelo za kriptografijo od napada SHAttered leta 2017, ki je pokazal dejansko kolizijo med dvema ločenima PDF-jema. Git ga še vedno uporablja privzeto, vendar se seli na SHA-256. Ne uporabljajte ga več za podpisovanje ali preverjanje pristnosti.
- SHA-256 (256 bitov, 64 šestnajstiških znakov): sodobni standard, član družine SHA-2. Osnova sodobnih certifikatov TLS, podpisov paketov Linux (apt, dnf, pacman), Bitcoin in uradnih preverjanj integritete. Počasnejši od MD5, vendar glede na trenutno znanje varen.
- SHA-512 (512 bitov, 128 šestnajstiških znakov): 64-bitna različica SHA-2. Izvorno obravnava 64-bitne besede, zaradi česar je včasih hitrejši od SHA-256 na 64-bitnem procesorju. Daljši odtis, večja varnostna rezerva.
- CRC32 (32 bitov, 8 šestnajstiških znakov): nekriptografski, izjemno hiter, zasnovan posebej za odkrivanje napak pri prenosu. Uporabljajo ga Ethernet, ZIP, PNG, gzip. Ne ščiti pred zlonamernimi nameni: napadalec lahko preprosto ponaredi datoteko z enakim CRC32 kot drugi. Primerno za hitro preverjanje strojne opreme, ne za varnost.
Primeri uporabe
- Preverite ISO Linux: Debian, Ubuntu, Fedora in Arch objavijo SHA-256 in SHA-512 vsake uradne slike, pogosto sopodpisane v GPG.
- Preverite podpisano dvojiško datoteko: potrdite, da izvedljiva datoteka, prenesena iz zrcalnega strežnika, ni bila zamenjana s prevarjeno različico.
- Primerjajte dve različici: pred in po spremembi enaka kontrolna vsota po delih dokazuje identiteto, ne da bi bilo treba razdeliti datoteke.
- Preverjanje nalaganja: odjemalec pošlje kontrolno vsoto, strežnik jo po prejemu znova izračuna, da potrdi odsotnost poškodb.
- Jemanje prstnih odtisov: zaznavanje robotov ali znanih datotek v podatkovnih zbirkah prstnih odtisov (protivirusni program, obveščanje o grožnjah, iskanje dvojnikov).
Kako ga uporabljati
- Povlecite in spustite datoteko v predvideno območje ali uporabite izbirni gumb.
- Izberite algoritem: MD5, SHA-1, SHA-256, SHA-512 ali CRC32.
- Prikaže se kontrolna vsota in je pripravljena za kopiranje.
- Primerjajte dobljeno vrednost z referenčno vrednostjo (ki jo je objavil založnik ali hrani lokalno).
Izračun se izvede lokalno v vašem brskalniku, brez pošiljanja datoteke na oddaljeni strežnik. Vsebina ostaja zaupna.
Kako preveriti prenos s kontrolno vsoto?
Standardni postopek preverjanja je naslednji:
- Uradno spletno mesto objavi pričakovano kontrolno vsoto, na primer
d41d8cd98f00b204e9800998ecf8427eza MD5 ali 64-mestni niz za SHA-256. - Prenesite datoteko.
- Izračunajte njegovo kontrolno vsoto s tem orodjem ali v ukazni vrstici.
- Primerjaj: če sta niza popolnoma enaka, znak za znakom, je datoteka nedotaknjena. Če se razlikujejo, tudi za en sam znak, je datoteka poškodovana ali spremenjena: ne uporabljajte je, znova jo prenesite.
Iz ukazne vrstice v sistemu Linux:
# Izračunajte kontrolno vsoto
md5sum file.iso
datoteka sha1sum.iso
sha256sum file.iso
sha512sum file.iso
cksum file.iso # CRC32 + velikost
# Samodejno preverjanje iz datoteke .sha256, ki jo je objavil urednik
sha256sum -c datoteka.iso.sha256
# Prikaže: "file.iso: OK", če se kontrolna vsota ujema
Pod macOS:
md5 file.iso
shasum -a 1.iso datoteka
shasum -a 256 file.iso
shasum -a 512 file.iso
# Preverjanje iz referenčne datoteke
shasum -a 256 -c datoteka.iso.sha256
V sistemu Windows (PowerShell):
Get-FileHash file.iso -Algoritem MD5
Get-FileHash file.iso -Algoritem SHA1
Get-FileHash file.iso -Algoritem SHA256
Get-FileHash file.iso -Algoritem SHA512
# Primerjajte s pričakovano vrednostjo
(Get-FileHash file.iso -Algoritem SHA256).Hash -eq "ABC123..."
Hitra primerjava algoritmov
| Algoritem | Velikost | Hitrost | Priporočena uporaba |
|---|---|---|---|
| CRC32 | 32-bitni | Zelo hitro | Zaznavanje napak v omrežju ali pomnilniku, nekriptografsko |
| MD5 | 128 bitov | Hitro | Samo nesovražna celovitost, ki se ji je treba varnostno izogibati |
| SHA-1 | 160 bitov | Hitro | Zastarela, stara združljivost (Git, stari paketi) |
| SHA-256 | 256 bitov | Zmerno | Trenutni standard, preverjanje integritete in podpisi |
| SHA-512 | 512 bitov | Hitro v 64-bitih | Preverjanje celovitosti, večja varnostna meja |
pogosta vprašanja
MD5 ali SHA-256 za preverjanje mojega ISO?
SHA-256 privzeto. Skoraj vse sodobne distribucije Linuxa izdajo SHA-256 in SHA-512, včasih poleg MD5 zaradi zgodovinske združljivosti. Če založnik izda le MD5 in vas skrbi kompromis, zahtevajte SHA-256 ali preverite podpis GPG datoteke kontrolnih vsot. Če vas skrbi le poškodba prenosa, je MD5 tehnično zadosten.
Ali kontrolna vsota zagotavlja varnost moje datoteke?
Ne, ne njemu samemu. Kontrolna vsota dokazuje celovitost, ne pristnosti. Če napadalec nadzoruje strežnik za prenos, lahko objavi spremenjeno datoteko in njeno spremenjeno kontrolno vsoto. Prava varnost izvira iz digitalnega podpisa (GPG, podpisovanje kode), ki povezuje kontrolno vsoto z znanim zasebnim ključem. Kontrolno vsoto vedno pridobite prek HTTPS ali, bolje, prek preverljivega podpisa GPG.
Moja kontrolna vsota se ne ujema, kaj naj naredim?
Najprej se prepričajte, da primerjate pravilen algoritem: SHA-256 se ne more ujemati s SHA-1. Nato znova zaženite prenos, najbolje z drugega zrcala: najpogostejši vzrok je izpad omrežja. Če se razlika po več poskusih ne odpravi, sumite, da je zrcalo ogroženo: vrnite se k uradnemu viru in preverite podpis GPG, če obstaja. Nikoli ne zaženite ali uporabite datoteke, dokler se kontrolna vsota ne ujema.
Zakaj je MD5 zastarel?
MD5 trpi zaradi praktičnih kolizij: v nekaj sekundah je mogoče sestaviti dve različni datoteki s popolnoma enakim hashom MD5. Ta lastnost krši samo funkcijo kriptografskega zgoščevanja. Natančneje, napadalec lahko ustvari zlonamerno dvojiško datoteko z enakim MD5 kot legitimna dvojiška datoteka. SHA-1 ima isto težavo od leta 2017 (SHAttered napad). Le SHA-256, SHA-512 in njune različice bodo leta 2026 ostale varne.
Razlika med zgoščeno vrednostjo in kontrolno vsoto?
Zgoščena vrednost je generični rezultat zgoščene funkcije. Kontrolna vsota je zgoščena vrednost, ki se uporablja posebej za preverjanje celovitosti podatkov. Vse kontrolne vsote so zgoščene vrednosti, vendar niso vse zgoščene vrednosti kontrolne vsote: zgoščena vrednost gesla (bcrypt, argon2) se uporablja za avtentikacijo, zgoščena vrednost v tabeli zgoščenih vrednosti se uporablja za hitro indeksiranje. Izraz prstni odtis ali prstni odtis je pogost sinonim za kontrolno vsoto.
Ali CRC32 zadostuje mojim potrebam?
CRC32 zadostuje, če želite samo odkriti nenamerno poškodbo na nesovražnem kanalu: notranji omrežni prenos, preverjanje arhiva ZIP, preverjanje skladnosti pomnilnika. Pri samo 32 bitih imata dve naključni datoteki približno 1 proti 4 milijarde možnosti, da bosta po naključju imeli enak CRC32, kar zadostuje za odkrivanje napak. CRC32 je nezadosten, takoj ko lahko napadalec vpliva na vsebino: nepomembno je ponarediti datoteko s ciljnim CRC32. Za vsako preverjanje proti zlonamernemu tveganju uporabite SHA-256.
Zakaj se moja kontrolna vsota razlikuje glede na OS?
Kontrolna vsota iste binarne vsebine je povsod enaka. Če dobite dva različna rezultata, se datoteka dejansko razlikuje: končnice vrstic (Windows CRLF proti Unix LF) po prenosu FTP v besedilnem načinu, kodiranje besedila, spremenjeno ob odprtju, metapodatki, ki jih je dodal sistem (ločljivost macOS Spotlight, razširjeni atributi), ali tiho ponovno stiskanje s strani odjemalca za prenos. Vedno prenašajte v binarnem načinu.
Kontrolna vsota ali digitalni podpis?
Kontrolna vsota dokazuje, da datoteka med objavo in sprejemom ni bila spremenjena, če je kontrolna vsota pridobljena prek varnega kanala. Digitalni podpis (GPG, PGP, code signing Authenticode) prav tako dokazuje identiteto avtorja z zasebnim ključem. Podpis zajema in krepi kontrolno vsoto: standardna praksa v Debianu, Torju ali Bitcoin Core je podpisati datoteko s kontrolnimi vsotami v GPG, nato pa te kontrolne vsote uporabiti za preverjanje binarnih datotek.
Pogosta vprašanja
Ali je datoteka poslana strežniku za izračun kontrolne vsote?
Ne. Izračun se v celoti opravi v vašem brskalniku z uporabo Web Crypto API in lokalnih rutin JavaScript. Vsebina datoteke ne zapusti vašega računalnika, kar omogoča zaupno zgoščevanje občutljivih dokumentov, šifriranih arhivov ali izpisov baze podatkov. Ta pristop prav tako zagotavlja stabilno delovanje, neodvisno od pasovne širine.
Kakšno velikost datoteke lahko zgostim s tem orodjem?
Izračun poteka pretočno v blokih, tako da je omejitev v bistvu odvisna od pomnilnika in časa, ki ga vaš brskalnik lahko nameni operaciji. Nekaj sto megabajtov prenese brez težav na običajnem računalniku. Za datoteke velikosti več gigabajtov (polni ISO, velik izpis) raje uporabite sistemsko ukazno vrstico (sha256sum, Get-FileHash), ki bolje uporablja vire diska in procesorja.
Kakšna je razlika med zgoščevanjem datoteke in zgoščevanjem besedila?
Algoritem je popolnoma enak, spremeni se le vnos. Za besedilo zgostimo zaporedje bajtov niza v danem kodiranju (običajno UTF-8). Za datoteko zgostimo neobdelano binarno vsebino, bajt za bajtom, vključno z vsemi vdelanimi glavami ali metapodatki. Zato lahko besedilna datoteka in njena vsebina, kopirana v obrazec, podata različne kontrolne vsote (BOM, konci vrstic, kodiranje).
Zakaj se kontrolna vsota arhiva ZIP razlikuje pri vsaki stvaritvi?
Večina arhivarjev (ZIP, TAR.GZ, 7z) hrani spremenljive metapodatke, kot so datum ustvarjanja, vrstni red datotek ali indikatorji stiskanja. Ponovno ustvarjanje arhiva z isto vsebino torej ustvari drugačno binarno datoteko in drugačno kontrolno vsoto. Če želite pridobiti ponovljive arhive, uporabite orodja, kot so diffoscope, strip-nondeterminism ali možnosti --mtime in --sort=name za tar.
Ali obstajajo hitrejše alternative za SHA-256 za preverjanje celovitosti?
ja BLAKE2 in BLAKE3 sta sodobni kriptografski zgoščevalni funkciji, zasnovani tako, da sta hitrejši od SHA-256 in hkrati zagotavljata enakovredno ali višjo raven varnosti. BLAKE3 še posebej dobro izkorišča SIMD in večjedrni paralelizem, zaradi česar je zelo učinkovit pri velikih datotekah. Za čisto nesovražno odkrivanje napak je xxHash neprekosljiv v hitrosti, vendar ostaja nekriptografski.
Ali lahko primerjam dve datoteki, ne da bi izračunal njuno celotno zgoščeno vrednost?
Za dve lokalni datoteki je neposredna binarna primerjava (cmp v sistemu Unix, fc /b v sistemu Windows) hitrejša kot zgoščevanje obeh. Zgoščena vrednost postane uporabna, ko datoteke niso na istem računalniku ali ko želite ohraniti kratek odtis, ne da bi ohranili izvirnik. Za pogosta preverjanja velikih količin indeksirajte zgoščene vrednosti v bazi podatkov in primerjajte prstne odtise namesto celotnih datotek.
Primer zahteve
curl -X POST https://cdrn.fr/api/v1/tools/hash-file-generator/execute \
-F "file=@/path/to/file" \
-F "algorithm=adler32"
Vhodna shema
| Polje | Tip | Obvezno | Privzeto |
|---|---|---|---|
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) | ✓ | – |
to orodje pričakuje datoteko - uporabite Content-Type multipart/form-data namesto application/json
Končne točke
GET https://cdrn.fr/api/v1/tools- izpiše vsa razpoložljiva orodjaGET https://cdrn.fr/api/v1/tools/hash-file-generator- pridobi shemo tega orodjaPOST https://cdrn.fr/api/v1/tools/hash-file-generator/execute- izvede to orodje s JSON payloadom