Вычисление хеша файла md5 с. Что такое контрольная сумма (хеш) и как ее проверить? После записи дистрибутива Linux на оптический диск нужно проверить целостность, узнать его MD5 сумму

29.07.2020 Photoshop

П ри обмене информацией по компьютерным сетям или через переносные носители актуальным встает вопрос о том, как проверить целостность передаваемой информации. Ведь если в полученном многомегабайтном файле будет неправильно сохранено несколько бит, то это может привести к проблемам при использовании этого файла. Особенно если этот файл является приложением. Поэтому при распространении различных установочных файлов, и прочей информации принято указывать контрольную сумму (хеш) — чтобы пользователи, скачав данные, могли самостоятельно проверить контрольные суммы файлов на предмет совпадения с хешем скачанной информации.

Принципы использования контрольных сумм

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

Поэтому принцип использования хэшей довольно прост, и состоит из двух этапов:

1. Вычисление, сохранение и публикация контрольной суммы оригинальных данных.

2. Вычисление ее значения для копии данных и сверка со значением для оригиналов.

Существует много разных алгоритмов хеширования. И соответственно есть много разновидностей хеш-сумм. Наиболее популярные среди них — это CRC32 , MD5 , SHA-1 и пр.

Где применяются хеши?

Даже те пользователи, которые не знают что такое хеш-суммы, все равно довольно часто пользуются благами их использования — например при открытии упакованных файлов. Дело в том, что современные архиваторы добавляют к упакованным файлам их хеши. Их можно увидеть, открыв архив с помощью программы-архиватора.

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

Другая сфера применения контрольных сумм — это использование их вместо паролей. Когда посетитель регистрируется на каком-то сайте, вводя секретный пароль, то на сервере сохраняется не сам пароль, а его хеш. Соответственно, если злоумышленники получат доступ к серверу, то они не смогут узнать сохраненные пароли — их там попросту нет.

Также хеш-суммы — неотъемлемая часть работы торрент-трекеров. Благодаря этому при закачке файлов через торренты гарантируется 100-процентная целостность передачи информации. При этом пользователю нет надобности каким-то образом контролировать этот процесс. Все необходимые операции при закачке осуществляет программа (). Конечно, если файлы уже давно скачаны, и нужно убедиться, не повредились ли они со временем, то можно запустить повторную проверку вручную. Так например в программе uTorrent для этого есть специальный пункт в контекстном меню (появляющемся при нажатии правой кнопкой мыши на выбранном торренте).

При использовании архивов и торрентов хеширование проводится без участия пользователя. Но поскольку далеко не все файлы удобно архивировать и тем более использовать торренты при отправке информации, то существует широко распространенная практика вычисления контрольных сумм для произвольного набора файлов. Чаще всего для этого используются хеш в формате MD5, для которого создано много разных программ.

Как создать MD5-хеш файлов с помощью MD5Checker?

Несмотря на то, что MD5-алгоритм доступен во многих файл-менеджерах и утилитах, не всеми из них удобно пользоваться. Часть программ не умеют проверять хэши для группы файлов. Другая часть программ хоть и делает это, но не выводит в удобном виде отчет о результатах проверки — приходится вручную прокручивать весь список файлов для выявления сообщений об ошибках.

Единственная максимально удобная программа для работы с MD5 — это приложение MD5Checker. Скачать программу можно с официального сайта . Несмотря на то, что программа имеет англоязычный интерфейс, пользоваться ей достаточно просто.

Программа по умолчанию настроена на хеширование программных файлов, архивов и ISO-образов. Поэтому если Вы хотите пользоваться этим приложением допустим для музыки и видео, то необходимо для начала поменять одну единственную настройку — указать маску для файлов, с которыми будет работать программа. Для этого нужно зайти в пункт меню «Tools / Options» и в поле «Include» указать символ * (что означает «все файлы»).

После этого можно пользоваться программой в обычном режиме — теперь будут сканироваться все до единого файлы во всех подпапках.

Для создания MD5-хеша нужно перетащить выбранные файлы из папки в окно программы — и программа автоматически начнет вычислять MD5-суммы для всех выбранных файлов и всех файлов в подпапках (удовлетворяющих заданной нами маске). Посчитанные суммы будут отображены в столбце «Current MD5» («Текущая MD5»). Теперь остается только сохранить полученные значения в файл, нажав кнопку «S To» («Сохранить в»).

При этом важно отметить, что если сохранить MD5-файл в папке, в которой находятся все выбранные нами файлы и подпапки, то будут сохранены относительные пути к ним. Это позволит в будущем проверять контрольную сумму даже если перенести файлы в другое месторасположение. Поэтому перед сохранением файла имеет смысл перейти в корень папки, нажав соответствующую кнопку.

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

При этом можно убедиться, что пути к файлам сохранены относительные, т.е. не содержат буквы диска, на котором расположены. Такой MD5-файл можно хранить в папке вместе с файлами, и в будущем на любом компьютере проверять целостность файлов этой папки.

Как проверить контрольные суммы файлов?

Для проверки контрольных сумм файлов нужно заново запустить программу либо нажать кнопку «Clear» для очистки списка файлов.

После этого следует перетащить MD5-файл в окно программы и удостовериться, что напротив каждого файла появилась зеленая галочка. Это означает что файлы хранятся в целости и сохранности. Если файлов довольно много, то контроль удобнее производить по счетчикам «Failed» и «Passed» («Не совпало» и «Совпало») в заголовке таблицы.

Можно провести эксперимент: переименовать один из файлов, а еще один отредактировать, произведя пару незначительных изменений. После запуска повторной проверки программа выявила, что один из файлов стал недоступным под изначальным именем (помечен желтым значком), а контрольная сумма второго файла не совпала (помечен красным значком). Несовпадение контрольной суммы свидетельствует о том, что файл либо изменялся, либо поврежден.

Стоит отметить, что если у Вас имеется несколько папок, в каждой из которых есть один или несколько MD5-файлов (в т.ч. в подпапках), то перетащив эти все папки в окно программы можно одним махом проверить все файлы на целостность. MD5Checker автоматически извлекает значения хешей из попадающихся при сканировании файлов с расширением md5. Это бывает крайне удобно, если осуществляется копирование или передача по интернету больших объемов информации.

Также если Вы переименовали или перенесли какие-то файлы в другое месторасположение, то можно отредактировать в блокноте MD5-файл, указав там новые значения для их путей — и тогда можно будет пользоваться им дальше для проверки файлов.

Итоги

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

Уже не раз я сталкивался с ситуацией, когда ISO диск записывался с ошибками и новенький Linux просто не хотел нормально устанавливаться. Чтобы такого не происходило, после прожига диска нужно всегда проверять его MD5-хэш. Как можно проверить MD5 хэш ?


Для того чтобы вы могли проверить целостность файлов ISO, для каждого образа приведены значения MD5-хэша. Они представляют собой уникальные строки, которые будут совершенно другими, если хотя бы один-единственный байт в файле ISO изменится по сравнению с исходным файлом. У каждого образа свой уникальный MD5-хэш, который можно сравнить с отпечатками пальцев, которые у каждого человека индивидуальны. Если MD5-хэш не совпадает с образцовым, диск нужно перезаписать.

1. Как проверить MD5 хэш в Linux?

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

В программе Brasero, которая стоит в Ubuntu для прожига дисков, такая утилита есть. После прожига диска она предлагает проверить диск на целостность. Не стоит выключать эту функцию, хоть это и занимает время.

К случаю хочу обратить ваше внимание на интересный проект: http://redhat.axoft.ru/ - это JBoss Enterprise Middleware - это отличное программное обеспечение высшего уровня, которое предоставляет отличный набор инструментов для разработчиков веб-приложений.

2. Как узнать MD5 хэш в Windows?

Для проверки файлов в Windows можно загрузить утилиту, например . После ее установки вы сможете сравнить значения файлового хэша со строковым значением исходного образа ISO. Если значения одинаковы, можно быть уверенным, что файл представляет собой точную копию исходного образа диска.

3. Как узнать MD5 хэш в Mac OS X?

В Mac OS X можно применить программу Disk Utility (Дисковая утилита) из папки Utilities, перетащив мышью файл ISO на пиктограмму Disk Utility на панели Dock. Затем выберите файл ISO и перейдите в меню Images (Образы), в котором следует выбрать последовательность Checksum | MD5 (Контрольная сумма | MD5).

Проверить MD5 (хеш-сумму) в Linux проще всего именно в терминале. Через какой-либо графический интерфейс необходимо будет сделать больше манипуляций, чем просто скомандовать в терминале Linux следующее:

Md5sum /home/pavel/Дистрибутивы/lubuntu-12.04-desktop-i386.iso

Само собой разумеющееся путь до необходимого вам файла, (/home/pavel/Дистрибутивы/lubuntu-12.04-desktop-i386.iso) необходимо прописывать свой, тот который соответствует нужному объекту для подсчета MD5 суммы в Linux .

Чтобы не вводить путь к файлу вручную, его можно скопировать следующим образом. Через файловый менеджер заходим в каталог, где собственно находится тот нужный нам файл. Адресную строку в файловом менеджере необходимо перевести из вида «иконок» в текстовый вид, клавишами , дальше можно скопировать путь либо с помощью мышки через правый клик, либо клавишами . Переходим в терминал и к написанной команде «md5sum» через пробел добавляем наш путь с полным названием файла.

$ md5sum /home/pavel/Дистрибутивы/lubuntu-12.04-desktop-i386.iso /home/pavel/Дистрибутивы/lubuntu-12.04-desktop-i386.iso

Команды в Linux являются стандартном для всех и значит, что команда md5sum подойдет для любого дистрибутива Linux , в котором бы вы не находились. Это и есть одно из достоинств командной строки!!!

Проверка MD5 (хеш-сумм) требуется после загрузки больших файлов, которые не смогут нормально работать, если какие-либо файлы повредились или каким-то образом изменились. Проверка MD5 сумм в основном применятся к.iso файлам, чаще всего к дистрибутивам. Если.ISO файл поврежден, то его не стоит записывать на USB брелок (флешку), а тем более на оптический диск, дистрибутив Linux при установке будет сообщать об ошибке каких-либо файлов.

После записи дистрибутива Linux на оптический диск нужно проверить целостность, узнать его MD5 сумму

В этой статье мы продолжим углубляться в мир командной строки и сверим MD5 записанного оптического с MD5 суммой исходного файла.ISO с помощью консольной утилиты isoinfo. Для начала мы выудим немного первичной информации о записанном диске командой:

Isoinfo -d -i /dev/sr0

Где /dev/sr0 это DVD-ROM, для уточнения имени вашего примонтированного оптического диска, в том случае если он у вас не один, можно найти по выводу этой команды:

Из имеющейся информации после ввода:

$ isoinfo -d -i /dev/sr0

Будет иметься примерно следующее:

CD-ROM is in ISO 9660 format System id: Volume id: Lubuntu 12.04 i386 Volume set id: Publisher id: Data preparer id: XORRISO-1.0.8 2011.04.14.073001, LIBISOBURN-1.0.8, LIBISOFS-1.0.8, LIBBURN-1.0.6 Application id: Copyright File id: Abstract File id: Bibliographic File id: Volume set size is: 1 Volume set sequence number is: 1 Logical block size is: 2048 Volume size is: 352406 El Torito VD version 1 found, boot catalog is in sector 320 Joliet with UCS level 3 found Rock Ridge signatures version 1 found Eltorito validation header: Hid 1 Arch 0 (x86) ID "" Key 55 AA Eltorito defaultboot header: Bootid 88 (bootable) Boot media 0 (No Emulation Boot) Load segment 0 Sys type 0 Nsect 4 Bootoff 52A18 338456

Для нас важны эти строчки:

Logical block size is: 2048 Volume size is: 352406

Dd if=/dev/sr0 bs=2048 count=352406 conv=notrunc,noerror | md5sum -b

Обратите внимание на три пункта, которые вы должны подставить свои:

  • /dev/sr0 - путь до оптического диска (если он у вас один, значит этот пункт без изменений)
  • bs= 2048 - у вас своё значение «Logical block size is:»
  • count=352406 - из значения «Volume size is:».

После подсчета вы получите примерно следующее:

352406+0 записей считано 352406+0 записей написано скопировано 721727488 байт (722 MB) *- , 55,3223 c, 13,0 MB/c

- это и есть MD5 сумма диска. Если, она совпадает со значение указанном на сайте, где вы скачивали файл или с исходным файлом на компьютере, то значит, диск записался без ошибок. На практике бывает, что сумма MD5 часто не совпадает с суммой MD5 указанной на сайте из-за ошибок при чтении диска.

Содержимое статьи:

В некоторых ситуациях, может быть необходимо, посчитать MD5 хеш-сумму для файла, который вы скачали на свой компьютер. Например, чтобы быть уверенным в том, что вы скачали именно тот файл, который хотели и злоумышленник его не модифицировал. В этой статье мы рассмотрим 2 разных способа это сделать: через расширение для проводника, а также через командную строку.

Вариант через расширение для проводника

Для проводника Windows существует замечательная программа Hashtab, которая бесплатна для некоммерческого использования. Скачать ее можно с . Выбираем бесплатную (Free) версию и жмем на кнопку "Download".

После установки программы, в контекстном меню проводника появится новая вкладка "Хеш-суммы файлов", выбрав которую, программа автоматически посчитает хеш-суммы для выбранного файла в зависимости от того, какие алгоритмы выбраны в ее настройках.

Вариант через командную строку (с установкой программы)

В случае, если необходимо посчитать хеш-сумму файла через командную строку, мы можем воспользоваться утилитой от Microsoft, которая годится как раз для таких случаев. Скачиваем ее с и устанавливаем. Для этого надо будет создать какую-либо папку на жестком диске и указать ее в процессе установки. В нашем примере, программа была установлена в папку C:\Program Files (x86)\FCIV. Для того, чтобы посчитать MD5 хеш-сумму файла, нам необходимо запусить командную строку и в ней набрать следующую команду:

"C:\Program Files (x86)\FCIV\fciv.exe" -md5 C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe

Как видите, MD5 хеш-сумма одинакова как для первого варианта, так и для второго.

"C:\Program Files (x86)\FCIV\fciv.exe" - это путь к файлу fciv.exe
-md5 - указание алгоритма по которому fciv.exe будет считать хеш-сумму
C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe - путь к файлу, для которого мы считаем хеш-сумму.

Вариант через командную строку (без установки программ)

В том случае, если вам не хочется устанавливать какие-либо программы, то можно обойтись встроенными средствами Windows, для этого можно воспользоваться утилитой CertUtil.

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

В этой небольшой статье мы рассмотрим что такое контрольная сумма Linux, а также как выполнять проверку целостности файлов с помощью контрольных сумм 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 groups_list

Сумма соответствует первому варианту, даже несмотря на то, что файл был переименован. Обратите внимание, что 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 используется не только вручную при проверке загруженных файлов, но и во множестве системных программ, например, в менеджере пакетов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение небольшое видео