Naučite se ustvariti in preveriti datoteke s kontrolno vsoto MD5 v Linuxu


Kontrolna vsota je številka, ki služi kot vsota pravilnih številk v podatkih, ki se lahko pozneje uporabijo za odkrivanje napak v podatkih med shranjevanjem ali prenosom. Vsote MD5 (Povzetek sporočil 5) se lahko uporabijo kot kontrolna vsota za preverjanje datotek ali nizov v datotečnem sistemu Linux.

Vsote MD5 so 128-bitni znakovni nizi (številke in črke), ki so rezultat izvajanja algoritma MD5 proti določeni datoteki. Algoritem MD5 je priljubljena zgoščevalna funkcija, ki generira 128-bitni povzetek sporočila, imenovan razpršena vrednost, in ko ga ustvarite za določeno datoteko, je natančno nespremenjen na katerem koli računalniku, ne glede na to, kolikokrat je ustvarjen.

Običajno je zelo težko najti dve ločeni datoteki, ki imata iste nize. Zato lahko z md5sum preverite celovitost digitalnih podatkov, tako da ugotovite, ali je datoteka ali ISO, ki ste ga prenesli, bitna kopija oddaljene datoteke ali ISO.

V Linuxu program md5sum izračuna in preveri zgoščene vrednosti MD5 datoteke. Je sestavni del paketa GNU Core Utilities, zato je vnaprej nameščen v večini, če ne v vseh distribucijah Linuxa.

Spodaj si oglejte vsebino /etc/group , shranjene kot groups.cvs.

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

Spodnji ukaz md5sums bo za datoteko ustvaril zgoščeno vrednost, kot sledi:

$ md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Ko poskušate spremeniti vsebino datoteke tako, da odstranite prvo vrstico, root: x: 0: in nato drugič zaženete ukaz, poskusite upoštevati zgoščeno vrednost:

$ md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Opazili boste, da se je vrednost zgoščene vrednosti spremenila, kar pomeni, da je bila vsebina datoteke spremenjena.

Zdaj vrnite prvo vrstico datoteke root: x: 0: in jo preimenujte v group_file.txt in zaženite spodnji ukaz, da znova ustvarite njeno zgoščeno vrednost:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Iz zgornjega izhoda je zgoščena vrednost še vedno enaka, tudi če je bila datoteka preimenovana z izvirno vsebino.

Pomembno: zneski md5 samo preverjajo/delujejo z vsebino datoteke in ne z imenom datoteke.

Datoteka groups_list.txt je dvojnik groups.csv, zato poskusite hkrati ustvariti zgoščeno vrednost datotek, kot sledi.

Videli boste, da imata oba enake hash vrednosti, ker imata popolnoma enako vsebino.

$ md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Razpršene vrednosti datotek lahko preusmerite v besedilno datoteko in jih shranite ter delite z drugimi. Za zgornji datoteki lahko izdate spodnji ukaz za preusmeritev ustvarjenih zgoščenih vrednosti v besedilno datoteko za poznejšo uporabo:

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

Če želite preveriti, ali datoteke niso bile spremenjene, odkar ste ustvarili kontrolno vsoto, zaženite naslednji ukaz. Ime vsake datoteke bi si morali ogledati skupaj z "V redu".

Možnost -c ali --check pove md5sums ukazu, naj iz datotek prebere vsote MD5 in jih preveri.

$ md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Ne pozabite, da po ustvarjanju kontrolne vsote datotek ne morete preimenovati ali pa se pri poskusu preverjanja datotek z novimi imeni prikaže napaka\"Ni take datoteke ali imenika \".

Na primer:

$ 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

Koncept deluje tudi za nize, v spodnjih ukazih -n pomeni, da ne izpišejo zaključne nove vrstice:

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

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

65136cb527bff5ed8615bd1959b0a248  -

V tem priročniku sem vam pokazal, kako ustvariti zgoščene vrednosti za datoteke, ustvariti kontrolno vsoto za poznejše preverjanje celovitosti datotek v Linuxu. Čeprav so bile v algoritmu MD5 zaznane varnostne ranljivosti, še vedno ostajajo uporabne zgoščenke MD5 koristne, zlasti če zaupate osebi, ki jih ustvari.

Preverjanje datotek je zato pomemben vidik obdelave datotek v vaših sistemih, da se izognete prenosu, shranjevanju ali skupni rabi poškodovanih datotek. Nenazadnje, kot ponavadi nas pokličete s pomočjo obrazca za komentar spodaj, če želite poiskati kakršno koli pomoč, lahko tudi podate nekaj pomembnih predlogov za izboljšanje te objave.