Главная >> Команды >> Проверка контрольной суммы Linux

Проверка контрольной суммы Linux

Контрольная сумма - это цифра или строка, которая вычисляется путем суммирования всех цифр нужных данных. Ее можно использовать в дальнейшем для обнаружения ошибок в проверяемых данных при хранении или передаче. Тогда контрольная сумма пересчитывается еще раз и полученное значение сверяется с предыдущим.

В этой небольшой статье мы рассмотрим что такое контрольная сумма Linux, а также как выполнять проверку целостности файлов с помощью контрольных сумм md5.


Содержание статьи

Что такое MD5?

Контрольные суммы Linux с вычисляемые по алгоритму MD5 (Message Digest 5) могут быть использованы для проверки целостности строк или файлов. MD5 сумма - это 128 битная строка, которая состоит из букв и цифр. Суть алгоритма MD5 в том, что для конкретного файла или строки будет генерироваться 128 битный хэш, и он будет одинаковым на всех машинах, если файлы идентичны. Трудно найти два разных файла, которые бы выдали одинаковые хэши.

В Linux для подсчета контрольных сумм по алгоритму md5 используется утилита md5sum. Вы можете применять ее для проверки целостности загруженных из интернета iso образов или других файлов.

Эта утилита позволяет не только подсчитывать контрольные суммы linux, но и проверять соответствие. Она поставляется в качестве стандартной утилиты из набора GNU, поэтому вам не нужно ничего устанавливать.

Проверка контрольных сумм в Linux

Синтаксис команды md5sum очень прост:

$ md5sum опции файл

Опций всего несколько и, учитывая задачи утилиты, их вполне хватает:

  • -c - выполнить проверку по файлу контрольных сумм;
  • -b - работать в двоичном формате;
  • -t - работать в текстовом формате;
  • -w - выводить предупреждения о неверно отформатированном файле сумм;
  • --quiet - не выводить сообщения об успешных проверках.

Сначала скопируйте файл /etc/group в домашнюю папку чтобы на нем немного поэкспериментировать:

cp /etc/group groups

Например, давайте подсчитаем контрольную сумму для файла /etc/group:

md5sum groups

md5

Или вы можете сохранить сразу эту сумму в файл для последующей проверки:

md5sum groups > groups.md5

Затем каким-либо образом измените этот файл, например, удалите первую строчку и снова подсчитайте контрольные суммы:

md5sum groups

md51 md52

Как видите, теперь значение отличается, а это значит, что содержимое файла тоже изменилось. Дальше верните обратно первую строчку root:x:0: и скопируйте этот файл в groups_list и

cp groups groups_list

Затем опять должна быть выполнена проверка контрольной суммы linux:

md5sum groups_list

md53

Сумма соответствует первому варианту, даже несмотря на то, что файл был переименован. Обратите внимание, что md5sum работает только с содержимым файлов, ее не интересует ни его имя, ни его атрибуты. Вы можете убедиться, что оба файла имеют одинаковые суммы:

md5sum groups groups_list

md54

Вы можете перенаправить вывод этой команды в файл, чтобы потом иметь возможность проверить контрольные суммы:

md5sum groups groups_list > groups.md5

Чтобы проверить, не были ли файлы изменены с момента создания контрольной суммы используйте опцию -c  или --check. Если все хорошо, то около каждого имени файла появится слово OK или ЦЕЛ:

md5sum -c groups.md5

md55

Но теперь вы не можете переименовывать файлы, потому что при проверке утилита будет пытаться открыть их по имени и, естественно, вы получите ошибку. Точно так же все работает для строк:

echo -n "Losst" | md5sum -
$ echo -n "Losst Q&A" | md5sum -

md56

Выводы

Из этой статьи вы узнали как выполняется получение и проверка контрольной суммы linux для файлов и строк. Хотя в алгоритме MD5 были обнаружены уязвимости, он все еще остается полезным, особенно если вы доверяете инструменту, который будет создавать хэши.

Проверка целостности файлов Linux - это очень важный аспект использования системы. Контрольная сумма файла Linux используется не только вручную при проверке загруженных файлов, но и во множестве системных программ, например, в менеджере пакетов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение небольшое видео по теме:

8 комментариев к “Проверка контрольной суммы Linux”

  1. Всегда просматриваю Ваши статьи на сайте-подписан на ленту новостей.Спасибо автору.А в конце ролика не удалось узнать MD5sum файла в формате avi,так как в названии папки и файла есть пробелы,нужно переименовать или убрать пробелы,например нижним подчёркиванием.Команда выглядит так:
    md5sum //media/oleb/DATA1/Тесты_записи_Linux/35_мм_3.avi

    Ответить
    • Самый простой способ - писать путь и имя файла в двух апострофах/кавычках, или же пред каждым пробелом ставить обратную косую черту перед каждым пробелом

      Ответить
  2. Риспект и уважуха. Который раз ищу справочную информацию, и всякий раз выручаете. У вас самое доходчивое и точное описание любой задачи в Linux. Спасибо.

    Ответить
  3. Подскажите,пытаюсь скачать сборку Linux SolydX и с офсайта и с других источников:контрольные суммы ISO-образа всегда не совпадают!Скачивал несколько раз и по Wi-Fi и по кабелю(соединение стабильное,скорость хорошая)-результат один и тот же.В чём тут дело и стоит ли устанавливать?

    Ответить
  4. Автор статьи не раз выручал- благодарю! С МД5 работать не очень сложно. Но либо я туп как дерево , либо авторы статей слишком грамотные. Перелопатил интернет и не могу узнать , где взять контрольную сумму которую предоставляют разработчики файла образа системы. ведь тллько зная хеш разработчиков МД5 ИЛИ ДРУГАЯ ПРОГРАММА СРАВНИВАЕТ ЭТИ СУММЫ.

    Ответить
  5. Интересно, вот какого лешего в русскоязычной среде нужно было переводить "OK" на "ЦЕЛ"???
    Часто бывает, что файлов выложено полно, а нужен лишь один, а контрольные суммы естественно все в одном файле. Так чтобы не разыскивать заветное подтверждение в простыне вывода, нужно этот вывод грепать, но для этого приходится переключать раскладку, да ещё и набирать аж 3 буквы вместо двух! )))
    md5sum -c md5sums.txt 2>&1 | grep ЦЕЛ
    Да, можно LC_ALL=C, можно даже алиас накостылить... Короче, как грицо: мелочь, а неприятно.

    Ответить
  6. Качаю убунту 20.04 но никак не совпадают контрольные суммы с оф сайта, как узнать какой вид контрольной суммы должен совпадать? Проверяю hashcalc из под винды.

    Ответить

Оставьте комментарий