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.