Deprecated: Function create_function() is deprecated in /var/www/u0470207/data/www/livelenta.com/wp-content/plugins/wp-russian-typograph/wp-russian-typograph.php on line 456
Оглавление:
При обмене информацией по компьютерным сетям или через переносные носители актуальным встает вопрос о том, как проверить целостность передаваемой информации. Ведь если в полученном многомегабайтном файле будет неправильно сохранено несколько бит, то это может привести к проблемам при использовании этого файла. Особенно если этот файл является приложением. Поэтому при распространении различных установочных файлов, образов дисков и прочей информации принято указывать контрольную сумму (хеш) — чтобы пользователи, скачав данные, могли самостоятельно проверить контрольные суммы файлов на предмет совпадения с хешем скачанной информации.
Принципы использования контрольных сумм
Для осознанного использования технологии полезно понимать, что из себя представляет хеш. В общем случае хеш — это набор бит, получаемый в результате вычислений над информацией по определенному алгоритму. Отличительной особенностью такого алгоритма является то, что при изменении хотя бы одного бита в исходной информации, хеш-сумма также меняется. И при этом крайне мала вероятность того, что случайное изменение нескольких бит входящей информации оставит хеш без изменений. Таким образом получается, что контрольная сумма — это как паспорт данных, сверившись с которым можно сделать вывод, что данные — подлинные.
Поэтому принцип использования хэшей довольно прост, и состоит из двух этапов:
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, с помощью которой Вы сможете как проверить контрольные суммы, так и создать их для множества файлов независимо от глубины их вложенности в дереве папок.