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.