Vyhledávání na webu

Přečtěte si, jak generovat a ověřovat soubory pomocí kontrolního součtu MD5 v systému Linux


Kontrolní součet je číslice, která slouží jako součet správných číslic v datech, kterou lze později použít k detekci chyb v datech během ukládání nebo přenosu. Součty MD5 (Message Digest 5) lze použít jako kontrolní součet k ověření souborů nebo řetězců v systému souborů Linux.

Součty MD5 jsou 128bitové znakové řetězce (číslice a písmena), které jsou výsledkem spuštění algoritmu MD5 proti konkrétnímu souboru. Algoritmus MD5 je oblíbená hašovací funkce, která generuje 128bitový souhrn zpráv označovaný jako hašovací hodnota, a když ji vygenerujete pro konkrétní soubor, nezmění se na žádném počítači bez ohledu na to, kolikrát byl vygenerován.

Obvykle je velmi obtížné najít dva odlišné soubory, které vedou ke stejným řetězcům. Proto můžete použít md5sum ke kontrole integrity digitálních dat určením, že stažený soubor nebo ISO je bit po bitu kopie vzdáleného souboru nebo ISO.

Doporučeno k přečtení: Pokrok – Sledování průběhu (cp, mv, dd, tar atd.) příkazů v Linuxu

V Linuxu program md5sum počítá a kontroluje hodnoty hash MD5 souboru. Je součástí balíčku GNU Core Utilities, a proto je předinstalován ve většině, ne-li ve všech distribucích Linuxu.

Podívejte se na obsah /etc/group uložený jako groups.cvs níže.

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

Níže uvedený příkaz md5sums vygeneruje pro soubor následující hodnotu hash:

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Když se pokusíte změnit obsah souboru odstraněním prvního řádku root:x:0: a poté příkaz spustíte podruhé, zkuste dodržet hodnotu hash:

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Všimnete si, že hodnota hash se nyní změnila, což znamená, že obsah souboru byl změněn.

Nyní vraťte zpět první řádek souboru, root:x:0: a přejmenujte jej na group_file.txt a spusťte níže uvedený příkaz, abyste znovu vygenerovali jeho hodnotu hash:

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Z výše uvedeného výstupu je hodnota hash stále stejná, i když byl soubor přejmenován, s původním obsahem.

Důležité: součet md5 pouze ověřuje/pracuje s obsahem souboru, nikoli s názvem souboru.

Soubor groups_list.txt je duplikátem souboru groups.csv, zkuste proto současně vygenerovat hash hodnotu souborů následujícím způsobem.

Uvidíte, že oba mají stejné hodnoty hash, protože mají přesně stejný obsah.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Hodnoty hash souboru (souborů) můžete přesměrovat do textového souboru a uložit a sdílet je s ostatními. Pro dva výše uvedené soubory můžete zadat příkaz níže k přesměrování vygenerovaných hodnot hash do textového souboru pro pozdější použití:

md5sum groups_list.txt  groups.csv > myfiles.md5

Chcete-li zkontrolovat, že soubory nebyly od vytvoření kontrolního součtu změněny, spusťte další příkaz. Měli byste být schopni zobrazit název každého souboru spolu s „OK“.

Doporučená četba: Najděte 15 nejlepších procesů podle využití paměti v Linuxu

Volba -c nebo --check říká příkazu md5sums, aby načetl součty MD5 ze souborů a zkontroloval je.

md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Pamatujte, že po vytvoření kontrolního součtu nemůžete soubory přejmenovat, jinak se při pokusu o ověření souborů s novými názvy zobrazí chyba „Žádný takový soubor nebo adresář“.

Například:

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

Tento koncept funguje také pro řetězce podobně, v příkazech níže znamená -n nevypisovat koncový nový řádek:

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

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

65136cb527bff5ed8615bd1959b0a248  -

V této příručce jsem vám ukázal, jak generovat hodnoty hash pro soubory, vytvořit kontrolní součet pro pozdější ověření integrity souboru v Linuxu. Přestože byly zjištěny chyby zabezpečení v algoritmu MD5, hodnoty hash MD5 jsou stále užitečné, zejména pokud důvěřujete straně, která je vytvořila.

Ověřování souborů je proto důležitým aspektem manipulace se soubory ve vašich systémech, abyste se vyhnuli stahování, ukládání nebo sdílení poškozených souborů. V neposlední řadě nás jako obvykle kontaktujte prostřednictvím níže uvedeného formuláře pro komentáře a požádejte o pomoc, můžete také učinit několik důležitých návrhů na vylepšení tohoto příspěvku.