Как получить md5 хэш файла
Алгоритм Message-Digest, широко известный как хэш md5, представляет собой тип криптографической хеш-функции, в основном используемый для проверки целостности файлов. Md5 — это 128-битный дайджест сообщения, созданный после выполнения функции MD5 для файла.
Md5 имеет свои недостатки и поэтому не очень подходит для определенных методов шифрования, но очень хорошо подходит для проверки файлов. Он работает, создавая контрольную сумму файла и сравнивая результат с оригиналом. Это означает, что если в файле есть изменения, он никак не может создать значение дайджеста, похожее на оригинал. Значение остается постоянным независимо от того, где оно было сгенерировано и сколько раз, пока файл остается неизменным.
В этом руководстве мы рассмотрим способы генерации хеш-значения файла md5. Это позволит вам проверить целостность файлов либо из удаленных мест, либо на вашем локальном компьютере.
Установить md5sum
В Linux и почти в большинстве Unix и Unix-подобных системах они поставляются с предустановленным инструментом md5. Самый распространенный — md5sum. По умолчанию вы должны найти его доступным в вашей системе.
/usr/bin/md5sum
Если у вас не установлен этот инструмент, вы можете использовать менеджер пакетов вашей системы.
Debian/Ubuntu
В Ubuntu и других дистрибутивах на основе Debian используйте apt как:
sudo apt-get install md5sum -y
REHL/CentOS
В REHL и CentOS используйте yum как:
sudo yum install md5sum
Арка/Манджаро
Если вы используете Manjaro или другие дистрибутивы на основе Arch, используйте Pacman с помощью команды:
sudo pacman -S md5sum
Fedora
Наконец, в системах Fedora используйте команду dnf как:
sudo dnf install md5sum
Сгенерировать Md5sum файла
Установив инструмент, мы можем продолжить и сгенерировать md5sum для файла. Вы можете использовать любой базовый файл, доступный в вашей системе. В моем примере я использую /etc/hosts, доступный в системах Linux.
Чтобы сгенерировать md5sum файла, просто используйте команду md5sum, за которой следует имя файла, которое вы можете увидеть в приведенной ниже команде:
Приведенная выше команда должна сгенерировать хеш-значение файла, как показано в выводе ниже:
После изменения содержимого файла значение md5sum становится совершенно другим. Например, добавьте значение в файл /etc/hosts.
Добавьте следующую запись в файл (не стесняйтесь изменять ее так, как считаете нужным).
Если вы попытаетесь вычислить значение md5 файла с новым содержимым как:
Хэш-значение отличается, как показано в выводе ниже:
Если вы вернете файл к его исходному содержимому, значение md5sum будет похоже на исходное, что позволит вам узнать, когда файл изменился.
ПРИМЕЧАНИЕ. Значение md5 будет похоже на исходное, даже если файл будет переименован. Это связано с тем, что md5 рассчитывается на основе содержимого файла, а не имени файла.
Проверка онлайн-файлов
Предположим, вы хотите проверить целостность файла и убедиться, что он защищен от несанкционированного доступа. Для этого все, что вам нужно, это исходное значение md5. В моем примере я использую простой пакет deb MySQL из приведенного ниже ресурса:
https://dev.mysql.com/downloads/mysql/
Загрузите файл с помощью wget, используя команду:
После загрузки файла:
Давайте теперь проверим значение md5 с помощью команды:
Если файл никаким образом не изменялся, вы должны получить значение, аналогичное исходному, как показано ниже:
Заключение
В этом руководстве рассматривался простой метод проверки контрольной суммы файлов md5 и проверки состояния их модификации.
Вот быстрое упражнение для вас.
Упражнение
Создайте простой bash-скрипт, который каждые 5 минут проверяет, имеет ли значение md5 файла какое-либо записанное изменение. Если файл изменился, удалите файл и выключите систему.
Это должно быть веселое упражнение!