MD5 ma swoje wady i dlatego nie jest zbyt dobrym wyborem dla niektórych metod szyfrowania, ale jest bardzo odpowiedni do weryfikacji plików. Działa poprzez utworzenie sumy kontrolnej pliku i porównanie wyniku z oryginałem. Oznacza to, że jeśli pojawią się zmiany w pliku, nie ma możliwości wytworzenia wartości trawienia podobnej do oryginału. Wartość pozostaje stała bez względu na to, gdzie się wygenerowano lub ile razy dłużej plik pozostaje niezmieniony.
W tym przewodniku przyjrzymy się sposobom generowania wartości skrótu MD5 pliku. To pozwoli ci zweryfikować integralność plików z odległych lokalizacji lub na komputerze lokalnym.
Zainstaluj MD5Sum
W systemie Linux i prawie dużych systemów UNIX i UNIX są one wstępnie zainstalowane z narzędziem MD5. Najczęstszym jest MD5Sum. Domyślnie powinieneś go znaleźć w swoim systemie.
$ Który MD5SumJeśli nie masz zainstalowanego narzędzia, możesz użyć menedżera pakietów swojego systemu.
Debian/Ubuntu
W Ubuntu i innych dystrybucjach opartych na Debiana użyj APT jako:
Rehl/Centos
Na Rehl i Centos użyj Yum jako:
Arch/Manjaro
Jeśli jesteś w Manjaro lub innych rozkładach opartych na łuku, użyj Pacman za pomocą polecenia:
Fedora
Wreszcie, w systemach Fedora, użyj polecenia DNF jako:
Wygeneruj MD5Sum pliku
Po zainstalowanym narzędziu możemy kontynuować i wygenerować MD5Sum dla pliku. Możesz użyć dowolnego podstawowego pliku dostępnego w systemie. W moim przykładzie używam /etc /hosts dostępnych w systemach Linux.
Aby wygenerować MD5Sum pliku, po prostu użyj polecenia MD5Sum, a następnie nazwy pliku, którą można zobaczyć w poniższym poleceniu:
sudo md5sum /etc /hostsPowyższe polecenie powinno wygenerować wartość skrótu pliku, jak pokazano na poniższym wyjściu:
F0EA6F62E5A12ED9AEE557B23842C6F6 /etc /hostsPo zmianie zawartości pliku wartość MD5Sum staje się zupełnie inna. Na przykład dodaj wartość do pliku/etc/hosts.
sudo nano /itpDodaj następujący wpis do pliku (możesz zmienić w dowolny sposób, aby postrzegasz dopasowanie).
192.168.0.20 LocalHostJeśli spróbujesz obliczyć wartość MD5 pliku za pomocą nowej zawartości jako:
sudo md5sum /etc /hostsWartość skrótu jest inna, jak pokazano na poniższym wyjściu:
F4B7F54D5B85A9E73E3C8960C6E9319E /etc /hostsJeśli przywrócisz plik do jego oryginalnej zawartości, wartość MD5Sum jest podobna do oryginału, co pozwala wiedzieć, kiedy plik się zmienił.
NOTATKA: Wartość MD5 będzie podobna do oryginału, nawet jeśli plik zostanie przemianowany. Wynika to z faktu, że MD5 jest obliczany na podstawie zawartości pliku, a nie nazwy pliku.
Sprawdź pliki online
Załóżmy, że chcesz zweryfikować integralność pliku i upewnić się, że jest on odporny na manipulację. Aby to zrobić, wszystko czego potrzebujesz, to oryginalna wartość MD5. W moim przykładzie używam prostego pakietu Deb MySQL z poniższego zasobu:
https: // dev.Mysql.com/pobieranie/mysql/
Pobierz plik z WGET za pomocą polecenia jako:
wget https: // dev.Mysql.com/get/pobrań/mysql-8.0/libmysqlclient21_8.0.25-1debian10_amd64.DebPo pobraniu pliku:
Sprawdźmy teraz wartość MD5 za pomocą polecenia:
$ md5sum libmysqlclient21_8.0.25-1debian10_amd64.DebJeśli plik nie został w żaden sposób zmodyfikowany, powinieneś uzyskać podobną wartość jak oryginał, jak pokazano:
62EA69F71DEFBFDAC7A60C124F5769C7 LibMysqlClient21_8.0.25-1debian10_amd64.DebWniosek
W tym samouczku obejrzano prostą metodę weryfikacji sumy kontrolnej MD5 i weryfikacji ich stanu modyfikacji.
Oto szybkie ćwiczenie dla Ciebie.
Ćwiczenia
Utwórz prosty skrypt bash, który sprawdza, czy wartość pliku MD5 ma jakąkolwiek rejestrowaną modyfikację co 5 minut. Jeśli plik się zmienił, usuń plik i zamknij system.
To powinno być zabawnym ćwiczeniem!