Lær hvordan du genererer og verifiserer filer med MD5 Checksum i Linux


En kontrollsum er et siffer som fungerer som en sum av riktige sifre i data, som senere kan brukes til å oppdage feil i dataene under lagring eller overføring. MD5 (Message Digest 5) summer kan brukes som en kontrollsum for å verifisere filer eller strenger i et Linux-filsystem.

MD5-summer er 128-biters tegnstrenger (tall og bokstaver) som er et resultat av å kjøre MD5-algoritmen mot en bestemt fil. MD5-algoritmen er en populær hash-funksjon som genererer 128-biters meldingssammendrag referert til som en hash-verdi, og når du genererer en for en bestemt fil, er den nøyaktig uendret på en hvilken som helst maskin, uansett hvor mange ganger den genereres.

Det er normalt svært vanskelig å finne to forskjellige filer som resulterer i samme strenger. Derfor kan du bruke md5sum til å sjekke digital dataintegritet ved å fastslå at en fil eller ISO du lastet ned er en bit-for-bit kopi av den eksterne filen eller ISO.

I Linux beregner og sjekker md5sum-programmet MD5-hash-verdier for en fil. Det er en bestanddel av GNU Core Utilities-pakken, og kommer derfor forhåndsinstallert på de fleste, om ikke alle Linux-distribusjoner.

Ta en titt på innholdet i /etc/group lagret som groups.cvs nedenfor.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

Kommandoen md5sums nedenfor vil generere en hash-verdi for filen som følger:

$ md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Når du prøver å endre innholdet i filen ved å fjerne den første linjen, root:x:0: og deretter kjøre kommandoen en gang til, prøv å observere hash-verdien:

$ md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Du vil legge merke til at hash-verdien nå er endret, noe som indikerer at innholdet i filen er endret.

Sett nå tilbake den første linjen i filen, root:x:0: og gi den nytt navn til group_file.txt og kjør kommandoen nedenfor for å generere hash-verdien igjen:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Fra utdataene ovenfor er hash-verdien fortsatt den samme selv når filen har fått nytt navn, med det opprinnelige innholdet.

Viktig: md5 sums verifiserer/fungerer bare med filinnholdet i stedet for filnavnet.

Filen groups_list.txt er et duplikat av groups.csv, så prøv å generere hash-verdien til filene på samme tid som følger.

Du vil se at de begge har like hash-verdier, dette er fordi de har nøyaktig samme innhold.

$ md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Du kan omdirigere hashverdien(e) til en fil(e) til en tekstfil og lagre, dele dem med andre. For de to filene ovenfor kan du gi kommandoen nedenfor for å omdirigere genererte hashverdier til en tekstfil for senere bruk:

$ md5sum groups_list.txt  groups.csv > myfiles.md5

For å kontrollere at filene ikke har blitt endret siden du opprettet kontrollsummen, kjør neste kommando. Du skal kunne se navnet på hver fil sammen med «OK».

Alternativet -c eller --check forteller md5sums-kommandoen å lese MD5-summer fra filene og sjekke dem.

$ md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Husk at etter å ha opprettet sjekksummen, kan du ikke gi nytt navn til filene, ellers får du feilmeldingen «Ingen slik fil eller katalog» når du prøver å bekrefte filene med nye navn.

For eksempel:

$ mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c  myfiles.md5
md5sum: groups_list.txt: No such file or directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

Konseptet fungerer også for strenger, i kommandoene nedenfor betyr -n at den ikke sender ut den etterfølgende nylinjen:

$ echo -n "Tecmint How-Tos" | md5sum - 

afc7cb02baab440a6e64de1a5b0d0f1b  -
$ echo -n "Tecmint How-To" | md5sum - 

65136cb527bff5ed8615bd1959b0a248  -

I denne guiden viste jeg deg hvordan du genererer hash-verdier for filer, oppretter en kontrollsum for senere verifisering av filintegritet i Linux. Selv om sikkerhetssårbarheter i MD5-algoritmen er oppdaget, er MD5-hasher fortsatt nyttige, spesielt hvis du stoler på parten som oppretter dem.

Verifisering av filer er derfor et viktig aspekt ved filhåndtering på systemene dine for å unngå nedlasting, lagring eller deling av ødelagte filer. Sist, men ikke minst, nå oss som vanlig ved hjelp av kommentarskjemaet nedenfor for å søke hjelp, du kan også komme med noen viktige forslag for å forbedre dette innlegget.