Проверка контрольной суммы 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 > groups.md5
Затем каким-либо образом измените этот файл, например, удалите первую строчку и снова подсчитайте контрольные суммы:
Как видите, теперь значение отличается, а это значит, что содержимое файла тоже изменилось. Дальше верните обратно первую строчку root:x:0: и скопируйте этот файл в groups_list и
cp groups groups_list
Затем опять должна быть выполнена проверка контрольной суммы linux:
Сумма соответствует первому варианту, даже несмотря на то, что файл был переименован. Обратите внимание, что md5sum работает только с содержимым файлов, ее не интересует ни его имя, ни его атрибуты. Вы можете убедиться, что оба файла имеют одинаковые суммы:
md5sum groups groups_list
Вы можете перенаправить вывод этой команды в файл, чтобы потом иметь возможность проверить контрольные суммы:
md5sum groups groups_list > groups.md5
Чтобы проверить, не были ли файлы изменены с момента создания контрольной суммы используйте опцию -c или —check. Если все хорошо, то около каждого имени файла появится слово OK или ЦЕЛ:
md5sum -c groups.md5
Но теперь вы не можете переименовывать файлы, потому что при проверке утилита будет пытаться открыть их по имени и, естественно, вы получите ошибку. Точно так же все работает для строк:
echo -n «Losst» | md5sum —
$ echo -n «Losst Q&A» | md5sum —
Выводы
Из этой статьи вы узнали как выполняется получение и проверка контрольной суммы linux для файлов и строк. Хотя в алгоритме MD5 были обнаружены уязвимости, он все еще остается полезным, особенно если вы доверяете инструменту, который будет создавать хэши.
Проверка целостности файлов Linux — это очень важный аспект использования системы. Контрольная сумма файла Linux используется не только вручную при проверке загруженных файлов, но и во множестве системных программ, например, в менеджере пакетов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение небольшое видео по теме:
Подсчитываем md5 (хеш-сумму) в Linux
Проверить MD5 (хеш-сумму) в Linux проще всего именно в терминале. Через какой-либо графический интерфейс необходимо будет сделать больше манипуляций, чем просто скомандовать в терминале Linux следующее:
Само собой разумеющееся путь до необходимого вам файла, (/home/pavel/Дистрибутивы/lubuntu-12.04-desktop-i386.iso) необходимо прописывать свой, тот который соответствует нужному объекту для подсчета MD5 суммы в Linux.
Чтобы не вводить путь к файлу вручную, его можно скопировать следующим образом. Через файловый менеджер заходим в каталог, где собственно находится тот нужный нам файл. Адресную строку в файловом менеджере необходимо перевести из вида «иконок» в текстовый вид, клавишами , дальше можно скопировать путь либо с помощью мышки через правый клик, либо клавишами . Переходим в терминал и к написанной команде «md5sum» через пробел добавляем наш путь с полным названием файла.
Команды в Linux являются стандартном для всех и значит, что команда md5sum подойдет для любого дистрибутива Linux, в котором бы вы не находились. Это и есть одно из достоинств командной строки.
Проверка MD5 (хеш-сумм) требуется после загрузки больших файлов, которые не смогут нормально работать, если какие-либо файлы повредились или каким-то образом изменились. Проверка MD5 сумм в основном применятся к .iso файлам, чаще всего к дистрибутивам. Если .ISO файл поврежден, то его не стоит записывать на USB брелок (флешку), а тем более на оптический диск, дистрибутив Linux при установке будет сообщать об ошибке каких-либо файлов.
После записи дистрибутива Linux на оптический диск нужно проверить целостность, узнать его MD5 сумму
В этой статье мы продолжим углубляться в мир командной строки и сверим MD5 записанного оптического с MD5 суммой исходного файла .ISO с помощью консольной утилиты isoinfo. Для начала мы выудим немного первичной информации о записанном диске командой:
Где /dev/sr0 это DVD-ROM, для уточнения имени вашего примонтированного оптического диска, в том случае если он у вас не один, можно найти по выводу этой команды:
Из имеющейся информации после ввода:
Будет иметься примерно следующее:
Для нас важны эти строчки:
Далее будем подставлять эти строки в следующую команду, которая нам сообщит MD5 сумму
Обратите внимание на три пункта, которые вы должны подставить свои:
- /dev/sr0 — путь до оптического диска (если он у вас один, значит этот пункт без изменений)
- bs= 2048 — у вас своё значение «Logical block size is:»
- count=352406 — из значения «Volume size is:».
После подсчета вы получите примерно следующее:
322e76e15cbe9ae4b964f3e6cbe49e37 — это и есть MD5 сумма диска. Если, она совпадает со значение указанном на сайте, где вы скачивали файл или с исходным файлом на компьютере, то значит, диск записался без ошибок. На практике бывает, что сумма MD5 часто не совпадает с суммой MD5 указанной на сайте из-за ошибок при чтении диска.
Как проверить контрольные суммы в Linux и Windows

Как проверить контрольные суммы в Linux и Windows и зачем это нужно. Пример зачем. Перед установкой операционной системы мы скачиваем её образ. Для того, что бы убедится в том, что образ скачан полностью и никаких проблем нет.
Разработчики предоставляют информацию в виде специального hash ключа с помощью которого проверяется в порядке образ или нет. С тем для чего проверять iso образ дистрибутива разобрались. Далее будем выяснять как и с помощью каких инструментов сравнить контрольные суммы и проверить целостность файлов.
Проверка контрольной суммы iso образа в Linux
Информация с хэш файлами выкладывается на сервере для скачивания или сообщается дополнительно. Для примера возьмем Debian. На сервере для скачивания дистрибутива есть файлы названные по алгоритму хеширования; MD5SUMS, SHA1SUMS и тп.. В них указана нужная информация. Для подтверждения подлинности файла метод (md5 — «Message Digest 5» или sha — «Secure Hash Algorithm»).
В линукс есть штатные утилиты с помощью которых проверяются хеши файлов. Это md5sum для алгоритма md5 и shasum для проверки алгоритма sha. Это консольные утилиты поэтому терминал. Запустим его и введем команду: md5sum имя_файла.
Команда md5sum в Linux с примерами
Md5sum предназначен для проверки целостности данных с использованием MD5 (алгоритм дайджеста сообщений 5).
MD5 — это 128-битный криптографический хеш, и при правильном использовании его можно использовать для проверки подлинности и целостности файла.
Важность:
Предположим, что кто-то хочет установить операционную систему, поэтому для проверки правильности установки компакт-диска всегда полезно проверить файл .iso с помощью контрольной суммы MD5, чтобы в конечном итоге вы не установили неправильное программное обеспечение (какой-то вирус, который может повредить вашу файловую систему).
Синтаксис:
Он напечатает или проверит контрольную сумму MD5 (128-бит).
Он вычисляет контрольную сумму MD5 для файла «test.cpp»
Выход :
Параметры :
-b: читать в двоичном режиме
-c: прочитать MD5 из файлов и проверить их
–Tag: создать контрольную сумму в стиле BSD
-t: читать в текстовом режиме (по умолчанию)
Опции, которые полезны при проверке контрольной суммы:
–Ignore-missing: не сообщать о статусе отсутствующих файлов
–Quiet: не печатать OK для каждого успешно проверенного файла
–Status: ничего не выводить, код состояния показывает успех
–Strict: выйти из ненулевого значения для неправильно отформатированных файлов контрольных сумм
-w: предупредить о неправильно отформатированных файлах контрольных сумм
Примеры использования команд с опциями:
Пример 1. Сохраните контрольную сумму MD5 в файле, а затем проверьте ее.
Он сохранит контрольную сумму MD5 для test.cpp в файле checkmd5.md5.
Это проверит содержимое файла
После изменения содержимого файла checkmd5.md5 на выходе будет:
Пример 2: создание контрольной суммы в стиле BSD с опцией –tag
Пример 3: опция -quiet, может использоваться при проверке контрольной суммы, не печатать OK, если проверка прошла успешно.
Не производите никаких результатов, значит, это успешно.
Но если контрольная сумма не совпадает, выдается предупреждение.
Пример 4: опция –warn, ее можно использовать для создания предупреждения о неправильно отформатированных файлах контрольных сумм.
содержимое файла checkmd5.md5:
Теперь выполните команду с опцией –warn
Это не производит никакого предупреждения.
Теперь выполните форматирование в файле checkmd5.md5.
Теперь выполните команду
и если -warn будет заменен параметром -strict, он выйдет ненулевое значение для неправильно отформатированных строк контрольной суммы







