Arvuta faili checksum
- Töölaud
- Dokumentatsioon
- API
Mis on kontrollsumma?
Kontrollsumma (mõnikord ka chksum) on ainulaadne digitaalne sõrmejälg, mis arvutatakse faili sisust räsimisalgoritmi abil. Seda sõrmejälge või sõrmejälge esindab tavaliselt fikseeritud pikkusega kuueteistkümnendjada.
The fundamental property of a good hashing algorithm is the avalanche effect: any modification of the source file, even by a single bit, produces a radically different checksum. Kaks täiesti identse sisuga faili annavad alati sama kontrollsumma, olenemata failinimest, muutmise kuupäevast või operatsioonisüsteemist.
The checksum is mainly used to verify the integrity of a file: if the fingerprint recalculated locally corresponds to that announced by the publisher, the file is intact. Vastasel juhul on seda muudetud, transpordi ajal rikutud või muudetud.
Milleks seda tegelikult kasutatakse?
- Kontrollige allalaaditava faili terviklikkust: Linuxi ISO (Debian, Ubuntu, Fedora, Arch), Dockeri kujutis, Windowsi installiprogramm või avatud lähtekoodiga arhiiv avaldab süstemaatiliselt ametliku kontrollsumma. Selle lokaalne ümberarvutamine kinnitab, et fail on täielik ja muutmata.
- Tuvastage riknemine edastamisel: allalaadimine, vigane kettasektor, ebastabiilne RAM, ebastabiilne võrgukaabel või USB-mälupulgal olev koopia võivad baite rikkuda. Kontrollsumma paljastab kohe need vaikivad vead.
- Allkirja sõrmejälg: kinnitage, et fail pärineb eeldatavalt autorilt, kui kontrollsumma edastatakse turvalise kanali kaudu (HTTPS, GPG-allkiri). See on Linuxi pakettide hoidlate ja rakenduste hoidlate mehhanism.
- Versioonide loomine ja vahemällu salvestamine: Git tuvastab iga kinnistamise, blobi ja puu SHA-1 räsi abil (migreerub SHA-256-le). CDN-id ja veebikomplektid (Webpack, Vite, esbuild) sisestavad failinimesse räsi (
app.4a8f2c.js), et muuta brauseri vahemälu automaatselt kehtetuks. - Duplikaatide tuvastamine ja dubleerimine: astmelised varukoopiad (Borg, Restic, rsync), failisüsteemid (ZFS) ja objektisalvestus tuvastavad identsed plokid nende räsi järgi, et salvestada ainult üks koopia.
- Üleslaadimise kinnitamine: klient saadab oodatud kontrollsumma, server arvutab selle vastuvõtmisel uuesti. Näiteks AWS S3 aktsepteerib rikutud üleslaadimise tagasilükkamiseks päist
Content-MD5võix-amz-checksum-sha256. - Ohuteave ja viirusetõrje: VirusTotali ja viirusetõrje müüjad indekseerivad pahatahtlikud failid nende SHA-256 räsi abil, mis võimaldab tuvastada ilma täielikku binaarfaili edastamata.
Toetatud algoritmid ja erinevused
- MD5 (128 bitti, 32 kuueteistkümnendmärki): kiire, laialt levinud, kuid krüptograafiliselt katki. MD5 kokkupõrkeid saab praeguse riistvaraga arvutada mõne sekundiga alates 2004. aastast. Kasutada ainult mittepahatahtliku terviklikkuse kontrollimiseks (allalaadimine võrgukatkestuse korral, kohalik varundamine). Keelatud mis tahes turvafunktsiooni, allkirja või autentimise jaoks.
- SHA-1 (160 bitti, 40 kuueteistkümnendmärki): krüptograafia jaoks aegunud alates 2017. aasta SHAttered rünnakust, mis näitas tegelikku kokkupõrget kahe erineva PDF-faili vahel. Git kasutab seda endiselt vaikimisi, kuid läheb üle SHA-256-le. Ärge kasutage seda enam allkirjastamiseks ega autentimiseks.
- SHA-256 (256 bitti, 64 kuueteistkümnendmärki): kaasaegne standard, SHA-2 perekonna liige. Kaasaegsete TLS-sertifikaatide, Linuxi pakettide allkirjade (apt, dnf, pacman), Bitcoini ja ametlike terviklikkuse kontrollide alus. Aeglasem kui MD5, kuid praeguste teadmiste põhjal ohutu.
- SHA-512 (512 bitti, 128 kuueteistkümnendmärki): SHA-2 64-bitine variant. Käsitseb 64-bitiseid sõnu natiivselt, muutes selle mõnikord kiiremaks kui SHA-256 64-bitise protsessori puhul. Pikem jalajälg, suurem ohutusvaru.
- CRC32 (32 bitti, 8 kuueteistkümnendmärki): mittekrüptograafiline, ülikiire, loodud spetsiaalselt edastusvigade tuvastamiseks. Kasutab Ethernet, ZIP, PNG, gzip. Ei kaitse pahatahtlike kavatsuste eest: ründaja võib triviaalselt võltsida faili, millel on sama CRC32 kui teine. Sobib kiireks riistvarakontrolliks, mitte turvalisuseks.
Kasutusjuhtumid
- Kontrollige Linuxi ISO-d: Debian, Ubuntu, Fedora ja Arch avaldavad iga ametliku kujutise SHA-256 ja SHA-512, sageli allkirjastatuna GPG-s.
- Allkirjastatud binaarfaili kinnitamine: veenduge, et peeglist allalaaditud käivitatav fail ei ole asendatud petliku versiooniga.
- Võrdle kahte versiooni: enne ja pärast muutmist tõestab identne kontrollsumma identiteeti bittide kaupa, ilma et peaks faile levitama.
- Üleslaadimise kinnitamine: klient saadab kontrollsumma, server arvutab selle kättesaamisel uuesti, et kinnitada rikutuse puudumist.
- Sõrmejäljed: robotite või teadaolevate failide tuvastamine sõrmejälgede andmebaasides (viirusetõrje, ohuluure, duplikaatotsing).
Kuidas seda kasutada
- Lohistage fail selleks ettenähtud alale või kasutage valikunuppu.
- Valige algoritm: MD5, SHA-1, SHA-256, SHA-512 või CRC32.
- Kuvatakse kontrollsumma, mis on kopeerimiseks valmis.
- Võrdlege saadud väärtust (väljaandja avaldatud või kohapeal säilitatud) võrdlusväärtusega.
Arvutamine toimub teie brauseris kohapeal, ilma faili kaugserverisse saatmata. Sisu jääb konfidentsiaalseks.
Kuidas kontrollida allalaadimist kontrollsummaga?
Standardne kontrolliprotseduur on järgmine:
- Ametlik sait avaldab oodatud kontrollsumma, näiteks MD5 jaoks
d41d8cd98f00b204e9800998ecf8427evõi SHA-256 jaoks 64 märgistringi. - Laadige fail alla.
- Arvutage selle kontrollsumma kas selle tööriistaga või käsureal.
- Võrdle: kui kaks stringi on tähemärgi haaval rangelt identsed, on fail terve. Kui need erinevad kasvõi ühe märgi võrra, on fail rikutud või rikutud: ära kasuta seda, laadi uuesti alla.
Linuxis käsurealt:
kood> # Arvutage kontrollsumma md5sum fail.iso sha1sum fail.iso sha256sum file.iso sha512sum file.iso cksum file.iso # CRC32 + suurus # Kontrollige automaatselt redaktori avaldatud .sha256 failist sha256sum -c fail.iso.sha256 # Kuvatakse: "file.iso: OK", kui kontrollsumma sobib
MacOS-i all:
kood> md5 fail.iso shasum - 1.iso fail shasum -a 256 fail.iso shasum -512 fail.iso # Kontrollimine viitefailist shasum -a 256 -c fail.iso.sha256
Windowsis (PowerShell):
kood> Get-FileHash file.iso -Algoritm MD5 Get-FileHash file.iso -Algoritm SHA1 Get-FileHash file.iso -Algoritm SHA256 Get-FileHash file.iso -Algoritm SHA512 # Võrrelge eeldatava väärtusega (Get-FileHash file.iso -Algoritm SHA256).Räsi -eq "ABC123..."
Algoritmide kiire võrdlus
| Algoritm | Suurus | Kiirus | Soovitatav kasutus |
|---|---|---|---|
| CRC32 | 32-bitine | Väga kiire | Võrgu- või salvestusvigade tuvastamine, mittekrüptograafiline |
| MD5 | 128 bitti | Kiire | Ainult mittevaenulik terviklikkus, mida tuleb turvalisuses vältida |
| SHA-1 | 160 bitti | Kiire | Aegunud, vana ühilduvus (Git, vanad paketid) |
| SHA-256 | 256 bitti | Mõõdukas | Praegune standard, terviklikkuse kontroll ja allkirjad |
| SHA-512 | 512 bitti | Kiire 64 bitis | Terveduse kontroll, suurem ohutusvaru |
KKK-d
MD5 või SHA-256 ISO kontrollimiseks?
Vaikimisi SHA-256. Peaaegu kõik kaasaegsed Linuxi distributsioonid annavad välja SHA-256 ja SHA-512, mõnikord koos MD5-ga ajaloolise ühilduvuse tagamiseks. Kui väljaandja annab välja ainult MD5 ja olete mures kompromissi pärast, nõudke SHA-256 või kontrollige kontrollsummade faili GPG-allkirja. Kui olete lihtsalt mures allalaadimise korruptsiooni pärast, on MD5 tehniliselt piisav.
Kas kontrollsumma tagab minu faili turvalisuse?
Ei, mitte ainult temale. Kontrollsumma tõestab terviklikkust, mitte autentsust. Kui ründaja juhib allalaadimisserverit, saab ta avaldada muudetud faili ja selle muudetud kontrollsumma. Tõeline turvalisus tuleneb digitaalallkirjast (GPG, koodi allkirjastamine), mis seob kontrollsumma teadaoleva privaatvõtmega. Kontrollsumma hankige alati HTTPS-i või, veel parem, kontrollitava GPG-allkirja kaudu.
Minu kontrollsumma ei ühti. Mida ma peaksin tegema?
Esiteks veenduge, et võrdlete õiget algoritmi: SHA-256 ei saa ühtida SHA-1-ga. Seejärel alustage allalaadimist uuesti, ideaaljuhul teisest peeglist: kõige levinum põhjus on võrgukatkestus. Kui lahknevus püsib ka pärast mitut katset, kahtlustage peegli ohtu: minge tagasi ametliku allika juurde ja kontrollige GPG allkirja, kui see on olemas. Ärge kunagi käivitage ega kasutage faili enne, kui kontrollsumma ühtib.
Miks MD5 tugi on aegunud?
MD5 kannatab praktiliste kokkupõrgete all: paari sekundiga on võimalik konstrueerida kaks erinevat faili täpselt sama MD5 räsi abil. See omadus rikub krüptograafilise räsi funktsiooni. Konkreetselt võib ründaja luua pahatahtliku kahendfaili, millel on sama MD5 kui seaduslik binaar. SHA-1 on kannatanud sama probleemi käes alates 2017. aastast (SHATtered attack). 2026. aastal peetakse turvaliseks ainult SHA-256, SHA-512 ja nende variante.
Mis vahe on räsi ja kontrollsumma vahel?
Räsi on räsifunktsiooni üldine tulemus. Kontrollsumma on räsi, mida kasutatakse spetsiaalselt andmete terviklikkuse kontrollimiseks. Kõik kontrollsummad on räsid, kuid mitte kõik räsid pole kontrollsummad: autentimiseks kasutatakse parooliräsi (bcrypt, argon2), kiireks indekseerimiseks kasutatakse räsi räsitabelis. Termin sõrmejälg või sõrmejälg on kontrollsumma levinud sünonüüm.
Kas CRC32-st piisab minu vajadustele?
CRC32 on piisav, kui soovite tuvastada ainult mittevaenuliku kanali juhuslikku korruptsiooni: sisemine võrguedastus, ZIP-arhiivi kontroll, mälu järjepidevuse kontroll. Kahel juhuslikul failil on ainult 32 bitti, mille tõenäosus saada juhuslikult sama CRC32 jaoks umbes 1:4 miljardit, mis on vea tuvastamiseks piisav. CRC32 on ebapiisav niipea, kui ründaja saab sisu mõjutada: sihtmärgi CRC32-ga faili võltsimine on triviaalne. Pahatahtliku ohu kontrollimiseks kasutage SHA-256.
Miks mu kontrollsumma olenevalt OS-ist erineb?
Sama binaarse sisu kontrollsumma on kõikjal identne. Kui saate kaks erinevat tulemust, on fail tegelikult erinev: rea lõpud (Windows CRLF vs Unix LF) pärast tekstirežiimis FTP-edastust, teksti kodeeringut avamisel muudetud, süsteemi lisatud metaandmed (macOS Spotlighti eraldusvõime, laiendatud atribuudid) või edastuskliendi vaikne uuesti tihendamine. Edastage alati binaarrežiimis.
Kontrollsumma või digitaalallkiri?
Kontrollsumma tõestab, et faili ei ole avaldamise ja vastuvõtmise vahel muudetud, eeldusel, et kontrollsumma hangitakse turvalise kanali kaudu. Digitaalallkiri (GPG, PGP, code signing Authenticode) tõestab samuti privaatvõtme abil autori identiteeti. Allkiri hõlmab ja tugevdab kontrollsummat: Debiani, Tori või Bitcoin Core'i tavapärane praktika on allkirjastada kontrollsummade fail GPG-s ja seejärel kasutada neid kontrollsummasid binaarfailide kontrollimiseks.
Korduma kippuvad küsimused
Kas fail saadetakse kontrollsumma arvutamiseks serverisse?
Ei. Arvutamine toimub täielikult teie brauseris, kasutades Web Crypto API-t ja kohalikke JavaScripti rutiine. Faili sisu ei lahku teie masinast, võimaldades tundlike dokumentide, krüptitud arhiivide või andmebaasi tõmmiste konfidentsiaalset räsimist. See lähenemisviis tagab ka stabiilse jõudluse, sõltumata ribalaiusest.
Mis suurusega faili saan selle tööriistaga räsida?
Arvutamine toimub voogesitusena, seega oleneb limiit sisuliselt mälust ja ajast, mille brauser saab toimingule pühendada. Paarsada megabaiti möödub tavalisel arvutil raskusteta. Mitme gigabaidise faili puhul (täis-ISO, suur tühjendus) eelistage süsteemi käsurida (sha256sum, Get-FileHash), mis kasutab paremini ketta- ja protsessoriressursse.
Mis vahe on faili ja teksti räsimisel?
Algoritm on rangelt sama, muutub ainult sisend. Teksti jaoks räsime stringi baitide jada antud kodeeringus (tavaliselt UTF-8). Faili puhul räsime baithaaval töötlemata kahendsisu, sealhulgas kõik manustatud päised või metaandmed. Seetõttu võib vormile kopeeritud tekstifail ja selle sisu anda erinevaid kontrollsummasid (BOM, realõpud, kodeering).
Miks muutub ZIP-arhiivi kontrollsumma iga loomise puhul?
Enamik arhiive (ZIP, TAR.GZ, 7z) salvestab muutuvaid metaandmeid, nagu loomise kuupäev, failijärjestus või tihendusindikaatorid. Sama sisuga arhiivi taasloomine loob seega erineva binaar- ja erineva kontrollsumma. Reprodutseeritavate arhiivide hankimiseks kasutage selliseid tööriistu nagu diffoscope, riba-nondeterminism või --mtime ja --sort=name valikuid tar.
Kas SHA-256-le on terviklikkuse kontrollimiseks kiiremaid alternatiive?
Jah. BLAKE2 ja BLAKE3 on kaasaegsed krüptograafilised räsifunktsioonid, mis on loodud olema SHA-256-st kiiremad, pakkudes samas samaväärset või kõrgemat turvalisuse taset. BLAKE3 kasutab eriti hästi ära SIMD-d ja mitmetuumalist paralleelsust, mis teeb selle suurte failide puhul väga tõhusaks. Puhtalt mittevaenulike vigade tuvastamiseks on xxHash kiirusega ületamatu, kuid jääb krüptograafiliseks.
Kas ma saan võrrelda kahte faili ilma nende kogu räsi arvutamata?
Kahe kohaliku faili puhul on otsene binaarne võrdlus (Unixis cmp, Windowsis fc /b) kiirem kui mõlema räsimine. Räsi on kasulik, kui failid pole samas masinas või kui soovite säilitada lühikest jalajälge ilma originaali säilitamata. Suurte mahtude sagedaseks kontrollimiseks indekseerige andmebaasi räsi ja võrrelge sõrmejälgi, mitte täielikke faile.
Päringunäide
curl -X POST https://cdrn.fr/api/v1/tools/hash-file-generator/execute \
-F "file=@/path/to/file" \
-F "algorithm=adler32"
Sisendskeem
| Väli | Tüüp | Kohustuslik | Vaikimisi |
|---|---|---|---|
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) | ✓ | – |
see tööriist ootab faili - kasuta Content-Type multipart/form-data application/json asemel
Lõpp-punktid
GET https://cdrn.fr/api/v1/tools- loetleb kõik saadaolevad tööriistadGET https://cdrn.fr/api/v1/tools/hash-file-generator- toob selle tööriista skeemiPOST https://cdrn.fr/api/v1/tools/hash-file-generator/execute- täidab selle tööriista JSON-payloadiga