Lær hvordan du genererer og verificerer filer med MD5-kontrolsum i Linux


En kontrolsum er et ciffer, der fungerer som en sum af korrekte cifre i data, som kan bruges senere til at detektere fejl i dataene under lagring eller transmission. MD5-sum (Message Digest 5) kan bruges som kontrolsum til at verificere filer eller strenge i et Linux-filsystem.

MD5 Sums er 128-bit tegnstrenge (tal og bogstaver), der skyldes kørsel af MD5-algoritmen mod en bestemt fil. MD5-algoritmen er en populær hash-funktion, der genererer 128-bit meddelelsesfordøjelse kaldet en hash-værdi, og når du genererer en til en bestemt fil, er den nøjagtig uændret på enhver maskine uanset hvor mange gange den genereres.

Det er normalt meget vanskeligt at finde to forskellige filer, der resulterer i samme strenge. Derfor kan du bruge md5sum til at kontrollere digital dataintegritet ved at bestemme, at en fil eller ISO, du downloadede, er en bit-for-bit-kopi af fjernfilen eller ISO.

I Linux beregner og kontrollerer md5sum-programmet MD5-hash-værdier for en fil. Det er en bestanddel af GNU Core Utilities-pakken og kommer derfor forudinstalleret på de fleste, hvis ikke alle Linux-distributioner.

Se indholdet af /etc/group gemt 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 genererer en hash-værdi for filen som følger:

$ md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Når du forsøger at ændre indholdet af filen ved at fjerne den første linje, root: x: 0: og derefter køre kommandoen for anden gang, skal du prøve at observere hash-værdien:

$ md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Du vil bemærke, at hashværdien nu er ændret, hvilket indikerer, at indholdet af filen blev ændret.

Sæt nu den første linje i filen, root: x: 0: , og omdøb den til group_file.txt, og kør kommandoen nedenfor for at generere dens hash-værdi igen:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Fra ovenstående output er hash-værdien stadig den samme, selv når filen er blevet omdøbt med sit originale indhold.

Vigtigt: md5 sums verificerer/fungerer kun med filindholdet snarere end filnavnet.

Filen groups_list.txt er en duplikat af groups.csv, så prøv at generere hash-værdien af filerne på samme tid som følger.

Du vil se, at de begge har lige hash-værdier, det er fordi de har nøjagtigt det samme indhold.

$ md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Du kan omdirigere hashværdien (e) af en fil (er) til en tekstfil og gemme, dele dem med andre. For de to filer ovenfor kan du udstede kommandoen nedenfor for at omdirigere genererede hashværdier til en tekstfil til senere brug:

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

For at kontrollere, at filerne ikke er blevet ændret, siden du oprettede kontrolsummen, skal du køre den næste kommando. Du skal kunne se navnet på hver fil sammen med “OK”.

Indstillingen -c eller --check fortæller md5sums-kommandoen at læse MD5-summer fra filerne og kontrollere dem.

$ md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Husk, at når du har oprettet kontrolsummen, kan du ikke omdøbe filerne, ellers får du en “Ingen sådan fil eller bibliotek” -fejl, når du prøver at bekræfte filerne med nye navne.

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

Konceptet fungerer også for strenge ens, i kommandoerne nedenfor betyder -n ikke output den efterfølgende nye linje:

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

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

65136cb527bff5ed8615bd1959b0a248  -

I denne vejledning viste jeg dig, hvordan du genererer hash-værdier til filer, opretter et kontrolsum til senere verifikation af filintegritet i Linux. Selvom sikkerhedssårbarheder i MD5-algoritmen er blevet opdaget, forbliver MD5-hashes stadig nyttige, især hvis du stoler på den part, der opretter dem.

Bekræftelse af filer er derfor et vigtigt aspekt af filhåndtering på dine systemer for at undgå at downloade, gemme eller dele beskadigede filer. Sidst men ikke mindst, når du som sædvanligt når os ved hjælp af nedenstående kommentarformular for at søge hjælp, kan du lige så godt komme med nogle vigtige forslag til forbedring af dette indlæg.