Aprēķināt faila checksum
- Vadības panelis
- Dokumentācija
- API
Kas ir kontrolsumma?
Kontrolsumma (dažreiz rakstīta kā chksum) ir unikāls digitālais pirkstu nospiedums, ko aprēķina no faila satura, izmantojot jaukšanas algoritmu. Šis pirksta nospiedums jeb pirksta nospiedums parasti tiek attēlots ar fiksēta garuma heksadecimālu virkni.
Laba jaukšanas algoritma pamatīpašība ir lavīnas efekts: jebkura avota faila modifikācija, pat ar vienu bitu, rada radikāli atšķirīgu kontrolsummu. Divi faili ar pilnīgi identisku saturu vienmēr rada vienu un to pašu kontrolsummu neatkarīgi no faila nosaukuma, modifikācijas datuma vai operētājsistēmas.
Kontrolsummu galvenokārt izmanto, lai pārbaudītu faila integritāti: ja lokāli pārrēķinātais pirkstu nospiedums atbilst izdevēja paziņotajam, fails ir neskarts. Pretējā gadījumā tas ir mainīts, bojāts sūtīšanas laikā vai pārveidots.
Kam tas patiesībā tiek izmantots?
- Pārbaudiet lejupielādes integritāti: Linux ISO (Debian, Ubuntu, Fedora, Arch), Docker attēls, Windows instalēšanas programma vai atvērtā pirmkoda arhīvs sistemātiski publicē oficiālu kontrolsummu. Pārrēķinot to lokāli, tiek apstiprināts, ka fails ir pilnīgs un nav mainīts.
- Noteikt bojājumus sūtīšanas laikā: pārtraukta lejupielāde, bojāts diska sektors, nestabila RAM, novirzīts tīkla kabelis vai kopija USB atslēgā var sabojāt baitus. Kontrolsumma nekavējoties atklāj šīs klusās kļūdas.
- Paraksta pirksta nospiedums: apstipriniet, ka fails nāk no paredzamā autora, kad kontrolsumma tiek pārraidīta, izmantojot drošu kanālu (HTTPS, GPG paraksts). Šis ir Linux pakotņu krātuvju un lietojumprogrammu veikalu mehānisms.
- Versiju izveide un saglabāšana kešatmiņā: Git identificē katru apņemšanos, blobu un koku ar SHA-1 jaucēju (migrēšana uz SHA-256). CDN un tīmekļa grupētāji (Webpack, Vite, esbuild) faila nosaukumā (
app.4a8f2c.js) ievada jaucējkodu, lai pēc izmaiņu veikšanas pārlūkprogrammas kešatmiņa tiktu automātiski atzīta par nederīgu. - Dublikātu noteikšana un dublēšanas noņemšana: papildu dublējumkopijas (Borg, Restic, rsync), failu sistēmas (ZFS) un objektu krātuve identificē identiskus blokus pēc to jaukšanas, lai saglabātu tikai vienu kopiju.
- Augšupielādes validācija: klients nosūta paredzēto kontrolsummu, serveris to pārrēķina pēc saņemšanas. Piemēram, AWS S3 pieņem galveni
Content-MD5vaix-amz-checksum-sha256, lai noraidītu bojātu augšupielādi. - Draudu izlūkošana un antivīruss: VirusTotal un pretvīrusu piegādātāji indeksē ļaunprātīgos failus, izmantojot SHA-256 jaucējfailu, kas ļauj noteikt, nepārsūtot pilnu bināro failu.
Atbalstītie algoritmi un atšķirības
- MD5 (128 biti, 32 heksadecimālās rakstzīmes): ātrs, plaši izplatīts, taču kriptogrāfiski bojāts. MD5 sadursmes var aprēķināt dažu sekunžu laikā ar pašreizējo aparatūru kopš 2004. gada. Jāizmanto tikai neļaunprātīgai integritātes pārbaudei (lejupielāde pret tīkla pārtraukumu, vietējā dublēšana). Aizliegts jebkādām drošības funkcijām, parakstam vai autentifikācijai.
- SHA-1 (160 biti, 40 heksadecimālās rakstzīmes): novecojis kriptogrāfijai kopš 2017. gada SHAttered uzbrukuma, kas demonstrēja faktisku divu atsevišķu PDF failu sadursmi. Git joprojām to izmanto pēc noklusējuma, bet tiek migrēts uz SHA-256. Vairs neizmantojiet to parakstīšanai vai autentifikācijai.
- SHA-256 (256 biti, 64 heksadecimālās rakstzīmes): mūsdienu standarts, SHA-2 saimes loceklis. Mūsdienu TLS sertifikātu, Linux pakešu parakstu (apt, dnf, pacman), Bitcoin un oficiālo integritātes pārbaužu pamats. Lēnāks par MD5, bet drošs, pamatojoties uz pašreizējām zināšanām.
- SHA-512 (512 biti, 128 heksadecimālās rakstzīmes): SHA-2 64 bitu variants. Vietēji apstrādā 64 bitu vārdus, padarot to dažreiz ātrāku par SHA-256 64 bitu centrālajā procesorā. Garāks nospiedums, lielāka drošības rezerve.
- CRC32 (32 biti, 8 heksadecimālās rakstzīmes): nekriptogrāfisks, īpaši ātrs, īpaši paredzēts pārraides kļūdu noteikšanai. Izmanto Ethernet, ZIP, PNG, gzip. Neaizsargā pret ļaunprātīgiem nodomiem: uzbrucējs var triviāli viltot failu ar tādu pašu CRC32 kā citam. Piemērots ātrām aparatūras pārbaudēm, nevis drošībai.
Lietošanas gadījumi
- Pārbaudiet Linux ISO: Debian, Ubuntu, Fedora un Arch publicē katra oficiālā attēla SHA-256 un SHA-512, bieži vien ar parakstu GPG.
- Parakstīta bināra faila apstiprināšana: pārbaudiet, vai no spoguļa lejupielādētais izpildāmais fails nav aizstāts ar viltotu versiju.
- Salīdzināt divas versijas: pirms un pēc modifikācijas identiska kontrolsumma pierāda identitāti pa bitam, neizplatot failus.
- Augšupielādes validācija: klients nosūta kontrolsummu, serveris to pārrēķina pēc saņemšanas, lai apstiprinātu, ka nav bojājumu.
- Pirkstu nospiedumu noņemšana: robotprogrammatūras vai zināmu failu noteikšana pirkstu nospiedumu datu bāzēs (antivīruss, draudu izlūkošana, dublikātu meklēšana).
Kā to lietot
- Velciet un nometiet failu norādītajā apgabalā vai izmantojiet atlases pogu.
- Izvēlieties algoritmu: MD5, SHA-1, SHA-256, SHA-512 vai CRC32.
- Tiek parādīta kontrolsumma, kas ir gatava kopēšanai.
- Salīdziniet iegūto vērtību ar atsauces vērtību (publicēja izdevējs vai tiek saglabāta lokāli).
Aprēķins tiek veikts lokāli jūsu pārlūkprogrammā, nenosūtot failu uz attālo serveri. Saturs paliek konfidenciāls.
Kā pārbaudīt lejupielādi, izmantojot kontrolsummu?
Standarta verifikācijas procedūra ir šāda:
- Oficiālajā vietnē tiek publicēta paredzamā kontrolsumma, piemēram,
d41d8cd98f00b204e9800998ecf8427eMD5 vai 64 rakstzīmju virkne SHA-256. - Lejupielādējiet failu.
- Aprēķiniet tās kontrolsummu, izmantojot šo rīku vai komandrindu.
- Salīdzināt: ja abas virknes ir pilnīgi identiskas, pa rakstzīmei, fails ir neskarts. Ja tie atšķiras pat ar vienu rakstzīmi, fails ir bojāts vai manipulēts: neizmantojiet to, lejupielādējiet to atkārtoti.
No komandrindas operētājsistēmā Linux:
# Aprēķiniet kontrolsummu
md5sum fails.iso
sha1sum fails.iso
sha256sum file.iso
sha512sum file.iso
cksum file.iso # CRC32 + izmērs
# Automātiski pārbaudiet no redaktora publicētā .sha256 faila
sha256sum -c fails.iso.sha256
# Parāda: "file.iso: OK", ja kontrolsumma sakrīt
MacOS:
md5 fails.iso
shasum - 1.iso fails
shasum -256 fails.iso
shasum -512 fails.iso
# Verifikācija no atsauces faila
shasum -a 256 -c file.iso.sha256
Sistēmā Windows (PowerShell):
Get-FileHash file.iso -Algoritms MD5
Get-FileHash file.iso -Algoritms SHA1
Get-FileHash file.iso -Algoritms SHA256
Get-FileHash file.iso -Algoritms SHA512
# Salīdziniet ar paredzamo vērtību
(Get-FileHash file.iso -Algoritm SHA256).Hash -eq "ABC123..."
Ātrs algoritmu salīdzinājums
| Algoritms | Izmērs | Ātrums | Ieteicamais lietojums |
|---|---|---|---|
| CRC32 | 32 biti | Ļoti ātri | Nekriptogrāfiska tīkla vai krātuves kļūdu noteikšana |
| MD5 | 128 biti | Ātri | Tikai nenaidīga integritāte, no kuras jāizvairās drošībā |
| SHA-1 | 160 biti | Ātri | Novecojusi, veca saderība (Git, vecas pakotnes) |
| SHA-256 | 256 biti | Mērens | Pašreizējais standarts, integritātes pārbaude un paraksti |
| SHA-512 | 512 biti | Ātrs 64 bitos | Integritātes pārbaude, lielāka drošības rezerve |
FAQ
MD5 vai SHA-256, lai pārbaudītu savu ISO?
SHA-256 pēc noklusējuma. Gandrīz visi mūsdienu Linux izplatījumi izlaiž SHA-256 un SHA-512, dažreiz kopā ar MD5 vēsturiskai saderībai. Ja izdevējs izlaiž tikai MD5 un jūs uztraucaties par kompromisu, pieprasiet SHA-256 vai pārbaudiet kontrolsummu faila GPG parakstu. Ja jūs vienkārši uztraucaties par lejupielādes korupciju, MD5 ir tehniski pietiekams.
Vai kontrolsumma garantē mana faila drošību?
Nē, ne viņam vienam. Kontrolsumma pierāda integritāti, nevis autentiskumu. Ja uzbrucējs kontrolē lejupielādes serveri, viņš var publicēt modificētu failu un tā modificēto kontrolsummu. Patieso drošību nodrošina ciparparaksts (GPG, koda parakstīšana), kas saista kontrolsummu ar zināmu privāto atslēgu. Vienmēr izgūstiet kontrolsummu, izmantojot HTTPS vai, labāk, izmantojot pārbaudāmu GPG parakstu.
Mana kontrolsumma neatbilst. Kas man jādara?
Vispirms pārliecinieties, vai salīdzinat pareizo algoritmu: SHA-256 nevar atbilst SHA-1. Pēc tam sāciet lejupielādi vēlreiz, ideālā gadījumā no cita spoguļa: visizplatītākais iemesls ir tīkla pārtraukums. Ja neatbilstība saglabājas pēc vairākiem mēģinājumiem, pastāv aizdomas par spoguļa kompromitēšanu: dodieties atpakaļ uz oficiālo avotu un pārbaudiet GPG parakstu, ja tāds pastāv. Nekad nepalaidiet un neizmantojiet failu, kamēr kontrolsumma nesakrīt.
Kāpēc MD5 ir novecojis?
MD5 cieš no praktiskām sadursmēm: dažu sekunžu laikā ir iespējams izveidot divus dažādus failus ar tieši tādu pašu MD5 hash. Šis īpašums pārkāpj pašu kriptogrāfijas jaucējfunkcijas funkciju. Konkrēti, uzbrucējs var izveidot ļaunprātīgu bināro failu ar tādu pašu MD5 kā likumīgu bināro failu. Kopš 2017. gada SHA-1 cieš no vienas un tās pašas problēmas (SHAttered uzbrukums). Tikai SHA-256, SHA-512 un to varianti joprojām tiek uzskatīti par drošiem 2026. gadā.
Kāda ir atšķirība starp hash un kontrolsummu?
Hash ir jaukšanas funkcijas vispārīgs rezultāts. Kontrolsumma ir jaucējsumma, ko īpaši izmanto, lai pārbaudītu datu integritāti. Visas kontrolsummas ir jaucējsummas, bet ne visas jaucējsummas ir kontrolsummas: autentifikācijai tiek izmantots paroles jaucējs (bcrypt, argon2), ātrai indeksācijai tiek izmantota jaucējsumma hash tabulā. Termins pirkstu nospiedums vai pirkstu nospiedums ir kontrolsummas izplatīts sinonīms.
Vai manām vajadzībām pietiek ar CRC32?
CRC32 ir pietiekams, ja vēlaties atklāt tikai nejaušu bojājumu kanālā, kas nav naidīgs: iekšējā tīkla pārsūtīšana, ZIP arhīva pārbaude, atmiņas konsekvences pārbaude. Ar tikai 32 bitiem diviem nejaušiem failiem ir aptuveni 1 no 4 miljardiem iespējamība, ka nejauši tiem būs tāds pats CRC32, kas ir pietiekams kļūdu noteikšanai. CRC32 ir nepietiekams, tiklīdz uzbrucējs var ietekmēt saturu: ir triviāli viltot failu ar mērķa CRC32. Lai pārbaudītu, vai nav ļaunprātīga riska, izmantojiet SHA-256.
Kāpēc mana kontrolsumma atšķiras atkarībā no operētājsistēmas?
Viena un tā paša binārā satura kontrolsumma visur ir identiska. Ja iegūstat divus dažādus rezultātus, fails patiesībā atšķiras: rindu beigas (Windows CRLF vs Unix LF) pēc teksta režīma FTP pārsūtīšanas, teksta kodējums mainīts, atverot, sistēmas pievienotie metadati (macOS Spotlight izšķirtspēja, paplašināti atribūti) vai klusa atkārtota saspiešana, ko veic pārsūtīšanas klients. Vienmēr pārsūtiet binārajā režīmā.
Kontrolsumma vai ciparparaksts?
Kontrolsumma pierāda, ka fails nav mainīts starp publicēšanu un saņemšanu, ja kontrolsumma tiek izgūta, izmantojot drošu kanālu. Ciparparaksts (GPG, PGP, koda parakstīšanas autentifikācijas kods) arī pierāda autora identitāti, izmantojot privāto atslēgu. Paraksts ietver un pastiprina kontrolsummu: Debian, Tor vai Bitcoin Core standarta prakse ir parakstīt kontrolsummu failu GPG, pēc tam izmantot šīs kontrolsummas, lai pārbaudītu bināros failus.
Bieži uzdotie jautājumi
Vai fails tiek nosūtīts uz serveri, lai aprēķinātu kontrolsummu?
Nē. Aprēķins pilnībā tiek veikts jūsu pārlūkprogrammā, izmantojot Web Crypto API un vietējās JavaScript rutīnas. Faila saturs netiek atstāts jūsu ierīcē, ļaujot konfidenciāli jaukt sensitīvus dokumentus, šifrētus arhīvus vai datu bāzes izgāztuves. Šī pieeja arī garantē stabilu veiktspēju neatkarīgi no joslas platuma.
Kāda izmēra failu var jaukt, izmantojot šo rīku?
Aprēķins tiek veikts straumējot blokos, tāpēc ierobežojums būtībā ir atkarīgs no atmiņas un laika, ko jūsu pārlūkprogramma var veltīt darbībai. Standarta datorā daži simti megabaitu iziet bez grūtībām. Vairāku gigabaitu failiem (pilns ISO, liels dump) dodiet priekšroku sistēmas komandrindai (sha256sum, Get-FileHash), kas labāk izmanto diska un centrālā procesora resursus.
Kāda ir atšķirība starp faila jaukšanu un teksta jaukšanu?
Algoritms ir stingri vienāds, mainās tikai ievade. Tekstam mēs jaukjam virknes baitu secību noteiktā kodējumā (parasti UTF-8). Failam mēs sajaucam neapstrādāto bināro saturu pa baitam, ieskaitot visas iegultās galvenes vai metadatus. Tāpēc teksta fails un tā saturs, kas kopēts formā, var dot dažādas kontrolsummas (BOM, rindu galotnes, kodējums).
Kāpēc ZIP arhīva kontrolsumma mainās katrā izveides laikā?
Lielākā daļa arhivētāju (ZIP, TAR.GZ, 7z) saglabā mainīgus metadatus, piemēram, izveides datumu, failu secību vai saspiešanas indikatorus. Atkārtoti izveidojot arhīvu ar tādu pašu saturu, tiek iegūta cita binārā summa un cita kontrolsumma. Lai iegūtu reproducējamus arhīvus, izmantojiet tādus rīkus kā diffoscope, strip-nondeterminism vai tar opcijas --mtime un --sort=name.
Vai pastāv ātrākas SHA-256 alternatīvas integritātes pārbaudei?
Jā. BLAKE2 un BLAKE3 ir modernas kriptogrāfijas jaucējfunkcijas, kas izstrādātas ātrākai nekā SHA-256, vienlaikus nodrošinot līdzvērtīgu vai augstāku drošības līmeni. BLAKE3 īpaši labi izmanto SIMD un daudzkodolu paralēlismu, kas padara to ļoti efektīvu lielos failos. Tīrai ne-naidīgu kļūdu noteikšanai xxHash ir nepārspējams ātrumā, taču joprojām nav kriptogrāfisks.
Vai varu salīdzināt divus failus, neaprēķinot visu to jaukto vērtību?
Diviem vietējiem failiem tiešs binārais salīdzinājums (cmp operētājsistēmā Unix, fc /b operētājsistēmā Windows) ir ātrāks nekā abu jaukšana. Jaucējkods kļūst noderīgs, ja faili neatrodas vienā iekārtā vai ja vēlaties saglabāt nelielu nospiedumu, nesaglabājot oriģinālu. Lai bieži pārbaudītu lielus apjomus, indeksējiet jaucējus datubāzē un salīdziniet pirkstu nospiedumus, nevis pilnus failus.
Pieprasījuma piemērs
curl -X POST https://cdrn.fr/api/v1/tools/hash-file-generator/execute \
-F "file=@/path/to/file" \
-F "algorithm=adler32"
Ievades shēma
| Lauks | Tips | Obligāts | Noklusējums |
|---|---|---|---|
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) | ✓ | – |
šis rīks sagaida failu - izmantojiet Content-Type multipart/form-data application/json vietā
Endpoint
GET https://cdrn.fr/api/v1/tools- uzskaita visus pieejamos rīkusGET https://cdrn.fr/api/v1/tools/hash-file-generator- iegūst šī rīka shēmuPOST https://cdrn.fr/api/v1/tools/hash-file-generator/execute- izpilda šo rīku ar JSON payload