Как получить сумму MD5 содержимого каталога в виде одной суммы?
Программа md5sum не предоставляет контрольные суммы для каталогов. Я хочу получить единую контрольную сумму MD5 для всего содержимого каталога, включая файлы в подкаталогах. То есть одна объединенная контрольная сумма, сделанная из всех файлов. Есть ли способ сделать это?
Правильный путь зависит от того, почему вы спрашиваете:
Вариант 1. Сравнение только данных
Если вам просто нужен хеш содержимого файла дерева, это поможет:
Это сначала суммирует все содержимое файла индивидуально, в предсказуемом порядке, затем передает этот список имен файлов и хэшей MD5 для хеширования, давая единственное значение, которое изменяется только при изменении содержимого одного из файлов в дереве.
Вариант 2: сравнить данные и метаданные
Если вам необходимо определить, что изменилось что- либо в дереве, а не только содержимое файла, попросите tar упаковать содержимое каталога для вас, а затем отправьте его по адресу md5sum :
Поскольку tar он также определяет права доступа к файлам, владельца и т. Д., Он также обнаруживает изменения этих вещей, а не только изменения содержимого файла.
Этот метод значительно быстрее, так как он делает только один проход по дереву и запускает хэш-программу только один раз.
Как и в случае find описанного выше метода based, tar происходит обработка имен файлов в том порядке, в котором их возвращает базовая файловая система. Вполне может быть, что в вашем приложении вы можете быть уверены, что этого не произойдет. Я могу придумать, по крайней мере, три различных модели использования, где это может иметь место. (Я не собираюсь перечислять их, потому что мы попадаем на неопределенную область поведения. Здесь каждая файловая система может отличаться, даже от одной версии ОС к другой.)
Как проверить контрольную сумму в Linux
Краткое описание : В этом руководстве для начинающих рассказывается, что такое контрольная сумма, что такое контрольная сумма md5, sha256 или sha-1, почему используется контрольная сумма и как проверить контрольную сумму в Linux.
Что такое контрольная сумма?
Контрольная сумма похожа на цифровой отпечаток файла. В техническом плане
Контрольная сумма представляет собой элемент данных небольшого размера из блока цифровых данных с целью обнаружения ошибок, которые могли быть внесены во время его передачи или хранения.
Чаще всего контрольная сумма используется для проверки поврежденного загруженного файла.
Например, страница загрузки Ubuntu MATE содержит контрольную сумму SHA256 для каждого изображения, доступного там. Таким образом, после загрузки изображения вы можете сгенерировать для него контрольную сумму SHA256 и проверить, соответствует ли значение контрольной суммы значению, указанному на сайте.
Если этого не произойдет, это будет означать, что целостность вашего загруженного изображения нарушена (возможно, он был поврежден в процессе загрузки). Для этого руководства мы будем использовать файл образа Ubuntu Mate « ubuntu-mate-16.10-desktop-amd64.iso ».
Как создается контрольная сумма?
Давайте посмотрим, как проверить контрольную сумму в Linux.
Подпишитесь на наш канал на YouTube, чтобы узнать больше о Linux видео
Как использовать контрольную сумму для проверки целостности файла [GUI way]
GtkHash поддерживает алгоритмы контрольной суммы
Установка GtkHash в Ubuntu
Для установки GtkHash в вашей системе Ubuntu просто выполните следующую команду:
Для выбора алгоритмов контрольной суммы использовать :
Использование GtkHash
Использовать его довольно просто.
Вот пример, показывающий, как GtkHash генерирует контрольную сумму для ISO-образа UbuntuMATE ( ubuntu-mate-16.10-desktop-amd64.iso ):
GtkHash с UbuntuMATE iso
Проверьте контрольную сумму в командной строке Linux
Каждый дистрибутив Linux поставляется с инструментами для различных алгоритмов контрольной суммы. Вы можете создать и проверить контрольную сумму с ними. Инструменты контрольной суммы командной строки:
Генерация и проверка контрольной суммы SHA256 с помощью суммы sha256
Сначала перейдите в каталог, где хранится образ .iso :
Теперь для генерации контрольной суммы SHA256 введите следующую команду:
Вы получите контрольную сумму SHA256 в окне своего терминала! Легко, не правда ли?
Генерация контрольной суммы SHA256 для UbuntuMATE iso
Другие упомянутые инструменты работают аналогично.
Насколько точно это работает?
Вы контрольную сумму?
Одним из предлагаемых шагов при установке Linux является проверка контрольной суммы Linux ISO. Вы всегда выполняете этот шаг или делаете это только тогда, когда что-то не так с установкой?
Было ли это руководство полезным? Если у вас есть какие-либо вопросы, дайте нам знать! А также, если вам нужно подобное руководство для чего-то другого, свяжитесь с нами, мы здесь, чтобы помочь.
linux контрольная сумма файла
После скачивания файла из сети желательно проверять его контрольную сумму, чтобы убедиться в том, что файл скачался полностью и в него не внесли изменения.
В Ubuntu и других дистрибутивах Linux для подсчета контрольной суммы можно воспользоваться консольной программой md5sum
В Ubuntu и других дистрибутивах Linux также можно воспользоваться графической программой Gtkhash, установить ее можно командой:
В Windows используйте программу HashCalc. Ее можно скачать с официального сайта: slavasoft.com
В результате программа должна показать контрольную сумму (набор букв и цифр), примерно в таком виде:
Ее нужно сверить с контрольной суммой, указанной на официальном сайте.
Если контрольная сумма совпала, значит можно использовать файл, а если не совпала — скачать файл заново.
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Контрольная сумма — это цифра или строка, которая вычисляется путем суммирования всех цифр нужных данных. Ее можно использовать в дальнейшем для обнаружения ошибок в проверяемых данных при хранении или передаче. Тогда контрольная сумма пересчитывается еще раз и полученное значение сверяется с предыдущим.
В этой небольшой статье мы рассмотрим что такое контрольная сумма Linux, а также как выполнять проверку целостности файлов с помощью контрольных сумм md5.
Что такое MD5?
Контрольные суммы Linux с вычисляемые по алгоритму MD5 (Message Digest 5) могут быть использованы для проверки целостности строк или файлов. MD5 сумма — это 128 битная строка, которая состоит из букв и цифр. Суть алгоритма MD5 в том, что для конкретного файла или строки будет генерироваться 128 битный хэш, и он будет одинаковым на всех машинах, если файлы идентичны. Трудно найти два разных файла, которые бы выдали одинаковые хэши.
В Linux для подсчета контрольных сумм по алгоритму md5 используется утилита md5sum. Вы можете применять ее для проверки целостности загруженных из интернета iso образов или других файлов.
Эта утилита позволяет не только подсчитывать контрольные суммы linux, но и проверять соответствие. Она поставляется в качестве стандартной утилиты из набора GNU, поэтому вам не нужно ничего устанавливать.
Проверка контрольных сумм в Linux
Синтаксис команды md5sum очень прост:
$ md5sum опции файл
Опций всего несколько и, учитывая задачи утилиты, их вполне хватает:
Сначала скопируйте файл /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 или ЦЕЛ:
Но теперь вы не можете переименовывать файлы, потому что при проверке утилита будет пытаться открыть их по имени и, естественно, вы получите ошибку. Точно так же все работает для строк:
Выводы
Из этой статьи вы узнали как выполняется получение и проверка контрольной суммы linux для файлов и строк. Хотя в алгоритме MD5 были обнаружены уязвимости, он все еще остается полезным, особенно если вы доверяете инструменту, который будет создавать хэши.
Проверка целостности файлов Linux — это очень важный аспект использования системы. Контрольная сумма файла Linux используется не только вручную при проверке загруженных файлов, но и во множестве системных программ, например, в менеджере пакетов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение небольшое видео по теме:
Как проверить контрольные суммы в Linux и Windows и зачем это нужно. Пример зачем. Перед установкой оперецинной системы мы скачиваем её образ. Для того, что бы убедится в том, что образ скачан полностью и никаких проблем нет.
Разработчики предоставляюи информацию в виде специального hash ключа с помощью которого проверяется в порядке образ или нет. С тем для чего проверять iso образ дистрибутива разобрались. Далее будем выяснять как и с поиощью каких инструментов сравнить контрольные суммы.
Проверка контрольной суммы iso образа в Linux
Информация с хэш файлами выкладывается на серевере для скачивания или сообщается дополнительно. Для примера возьмем Debian. На сервере для скачивания дистрибутива есть файлы: MD5SUMS, SHA1SUMS и тп.. В них указана нужная ифнормация. Для подтверждения подлинности файла метод (md5 — «Message Digest 5» или sha — «Secure Hash Algorithm»).
В линукс есть штатные утилиты с помощью которых проверяются хеши файлов. Это md5sum для алгоритма md5 и shasum для проверки алгоритма sha. Это консольные утилиты поэтому терминал. Запустим его и введем команду: md5sum имя_файла.
контрольная сумма для всей папки в терминале linux?
требуется сверить контрольную сумму залитых на сервер кучи файлов, которые находятся в одной папке. по сути без разницы каким алгоритмом, лишь бы сверить, чем менее ресурснозатратно и более быстро, тем лучше. можно выполнить чек сумм прямо на папку? как? например папка тут /home/user/thisfolderforchksumm
/thisfolderforchksumm$ md5sum *’ а как на всю папку? я как не прописывал, только ругается что директория.. как прописать на папку?
1 ответ 1
прочитать (fopen()+fread() и т.д. и т.п.) можно содержимое файла, но что именно должно происходить при «чтении самого каталога» (1), насколько мне известно, не описано ни в каком стандарте (ну, разве что в plan9 что-нибудь эдакое выдумали по поводу «чтения каталога»).
если вы принципиально не пользуетесь чем-либо вроде программы rsync для копирования и/или сверки актуальности копии файлов/каталогов, то, чтобы не сравнивать два списка с контрольными суммами (что, к слову, очень легко сделать с помощью программы diff), можно подсчитать контрольные суммы самих списков:
вместо программы sum можно использовать любую другую аналогичную программу: cksum, md*sum, sha*sum и т.п.
промежуточный вызов программы sort для сортировки списка контрольных сумм — на всякий случай. ведь теоретически оболочка может выдать список одних и тех же файлов («раскрывая» мета-символ * ) в разных случаях в разном порядке.
если в каталоге имеются вложенные каталоги с файлами, и требуется получить и их контрольные суммы, то можно воспользоваться связкой программ find+xargs:
Изучаем Linux приемы для создания контрольных сумм и проверки целостности данных
Контрольная сумма используется для проверки целостности файла.
Ее можно охарактеризовать как цифровой отпечаток файла.
Проверяя значение Checksum, мы можем определить целостность файла, когда он был перенесен из одного места в другое.
Контрольная сумма представляет собой длинную строку данных, содержащую различные буквы и цифры.
Все популярные веб-сайты программного обеспечения предоставляют значение контрольной суммы для загруженного файла, с помощью которого мы можем подтвердить наши данные, проверив значение контрольной суммы.
Генерирование контрольных сумм Linux
Контрольная сумма генерируется алгоритмом контрольной суммы.
Он генерирует значение контрольной суммы, беря файл в качестве ввода.
MD5 и SHA (Secure Hash Algorithms) – самые популярные алгоритмы, используемые для создания контрольных сумм
Инструменты командной строки для работы с контрольной суммой
Почти все дистрибутивы Linux предоставляют инструменты командной строки для различных алгоритмов контрольной суммы.
Вы можете сгенерировать и проверить контрольную сумму используя их.
Некоторые из стандартных инструментов командной строки, используемые в настоящее время, следующие:
Примеры
Давайте рассмотрим некоторые примеры использования этих инструментов командной строки для создания значений контрольной суммы.
Я создал один из тестовых файлов index.html.
Давайте сгенерируем значение контрольной суммы для этого файла, используя указанные выше средства.
md5sum:
MD5 – это алгоритм, который используется для проверки целостности данных посредством создания 128-битного дайджеста сообщений из ввода данных, который, как утверждается, является уникальным для этих конкретных данных вроде отпечатка пальца для конкретного человека.
Вы можете видеть мой файл, я сгенерировал значение контрольной суммы, соответствующее этому файлу, используя алгоритм MD5.












