Hvordan vet du at den 4 GB-filen du nettopp har lastet ned, er overført uten feil? En måte er å bruke en hashalgoritme som produserer et "fingeravtrykk" eller en "meldingsfordeling" av den nedlastede filen. Som menneskelige fingeravtrykk er den resulterende tegnstrengen ment å være unik, og bare den filen kan produsere det fingeravtrykk. Nettsteder som tilbyr store nedlastinger, sier en Linux-distribusjon som Fedora, vil også publisere en liste over hashene for filene. Alt du trenger å gjøre er å sjekke hash av filen du har mot publisert hash, og hvis de er de samme, så er filen lastet ned riktig.

Tidligere var den foretrukne hashingalgoritmen MD5, og selv om den fortsatt er mye brukt (for eksempel Ubuntu-prosjektet fremdeles gir MD5 hashes), blir det langsomt erstattet av SHA-familien av hashes. Problemet med MD5 er at det er mulig å lage flere filer med samme fingeravtrykk. I et kjent tilfelle blant kryptografer, sa en sikkerhetsforsker at han visste hvem som ville vinne presidentvalget, og han hadde opprettet en fil med resultatet i det og utstedt MD5-hasen. Han ville frigjøre sin fil etter valget og bevise at hans prediksjon var riktig. Faktisk, det han hadde gjort var å lage flere filer med alle mulige vinnere og manipulere filene på en slik måte at de alle hadde samme MD5 fingeravtrykk!

Det finnes flere forskjellige Secure Hash Algorithms (SHA), inkludert SHA1, SHA256 og SHA512. Teknisk SHA256 og SHA512 bruker begge samme algoritmen, men behandler dataene i forskjellige størrelser. SHA256 bruker 32 bit blokker og SHA512 64 bit blokker.

SHA1 ligner MD5 og som MD5, det er noen bekymringer om den unike egenskapen til de resulterende hashene, og den er ikke lenger godkjent for mange kryptografiske bruksområder siden 2010. Men hvis du finner et nettsted som publiserer SHA1 hashes, kan du sjekke dem slik :

 sha1sum Fedora-19-i386-netinst.iso 

Utgangen vil se slik ut:

 b24e9b7bd49168839fd056bbd0ac8f2aec6b68b9 Fedora-19-i386-netinst.iso 

SHA256 hash er generert på samme måte:

 sha256 Fedora-19-i386-netinst.iso 

Og utdataene er like, med unntak av at fingeravtrykkstrengen er mye lengre:

 2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c Fedora-19-i386-netinst.iso 

Og på samme måte for SHA512:

 sha512sum Fedora-19-i386-netinst.iso 

Det resulterende fingeravtrykket er enda lenger:

 9eb35d03cc289aa5d5a29cfc9080c3152a3da1b91a2b12d352b16a3d817a7479b9d1be3c7ecf011abf6a01f3122c66892f96a2c213756df786117412d8df99b3 Fedora-19-i386-netinst.iso 

Snarere bare publisere fingeravtrykkstrengen isolert, noen nettsteder tilbyr en sjekksumfil som inneholder all hashinformasjon i maskinlesbar form som de ulike sha kommandoene kan bruke til automatisk å verifisere filer. En sjekksumfil for nettverksinstallasjonen 32 bitars Intel-versjon av Fedora 19 kan se slik ut:

 2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c * Fedora-19-i386-netinst.iso 

For å sjekke dette, bruk parameteren " -c " som denne:

 sha256sum-c Fedora-19-i386-CHECKSUM 

Hvor Fedora-19-i386-CHECKSUM er navnet på filen som inneholder fingeravtrykksinformasjonen som vist ovenfor.

Hvis fingeravtrykkene samsvarer, vil utgangen se slik ut:

 Fedora-19-i386-netinst.iso: OK 

Hvis det oppstår en feil i den nedlastede filen, vil utgangen være:

 Fedora-19-i386-netinst.iso: FAILED sha256sum: ADVARSEL: 1 beregnet sjekksum samsvarer IKKE 

Prøv dette

Linux-distribusjonen din inneholder sannsynligvis også sha224 og sha384 kommandoene. Disse to hash-algoritmene er avkortede versjoner av SHA256 og SHA512. De kan brukes på samme måte som kommandoene sha256 og sha512 . Prøv å produsere hashes bruker dem og legg merke til forskjellene i produksjonen.