md5sum
md5sum — программа, позволяющая вычислять значения хеш-сумм (контрольных сумм) файлов по алгоритму MD5. В обычном случае вычисленные хеши выводятся (можно сохранить в файле, для последующего использования). В других случаях программа сверяет вычисленные значения со значениями, сохранёнными в файле (это удобно для массовой проверки целостности файлов).
md5sum | |
---|---|
Тип | программа для вычисления и верификации Хеш-сумм по алгоритму MD5 |
Операционная система | Linux, UNIX, Microsoft Windows, Mac OS X |
Наиболее часто программа используется для проверки правильной загрузки файлов по сети. Программа имеет множество версий (функциональность версий может существенно различаться) для различных ОС — например, Linux, UNIX (напр., BSD), Microsoft Windows, MacOS.
Ключи запуска программы
md5sum [ключи] [файл] ...
Если файл не указан, или в качестве его имени указан символ -, то данные читаются из standard input.
Ключи:
- -t, --text — читать данные файлов в текстовом режиме (по умолчанию). Перед именем файла выводится пробел.
- -b, --binary — читать данные файлов в двоичном режиме. Перед именем файла выводится символ *.
- -c, --check — сверять вычисленные значения MD5 со значениями из файла
- --status — (только при проверке хешей) — выводить только код проверки ()
- -w, --warn — (только при проверке хешей) — предупреждать о строках (checksum lines) с неправильным форматом
- --help — вывести только справку по ключам
- --version — вывести только информацию о версии
md5deep
Многие версии программы md5sum не могут обрабатывать множества файлов, перемещаясь по каталогам рекурсивно. Этого ограничения не имеет усовершенствованная версия программы — md5deep.
Примеры
Быстрое вычисление хеша из командной строки (обратите внимание на ключ -n у echo, предотвращающий добавление символа перевода строки):
$ echo -n "to_hash" | md5sum - 81cf2f9f23fd597f2e278e56718c3831 -
Вычисление в текущем каталоге по маске. Хеши (checksums) MD5 (128-битные значения) выводятся в виде 32-значных шестнадцатеричных чисел.
$ md5sum ./s* 3111519d5b4efd31565831f735ab0d2f ./sec1.png d73ecc5397b8bfde0cc218f798019064 ./sec2.png
Для вычисления и записи (в файл sums.md5) хешей файлов (читаемых как двоичные файлы) с шаблоном имени:
md5sum -b ./sec* > sums.md5
Для проверки контрольных сумм файлов, сохранённых в файле.
md5sum -c sums.md5 ./sec1.png: FAILED ./sec2.png: OK md5sum: WARNING: 1 of 2 computed checksums did NOT match
Заметьте, что для каждого файла выводится результат проверки: OK или FAILED. Список проверяемых файлов читается из указанного файла.
Если нужно просто проверить, все ли файлы имеют правильные контрольные суммы, можно подавить «вывод результата для каждого файла» с помощью ключа --status. Тогда вообще ничего не выводится, а возвращается невидимый «код возврата». Это полезно, когда программа вызывается другой программой.
Чтобы вычислить хеши всех файлов в текущем каталоге и его подкаталогах (рекурсивно), при этом выводить размер файлов и относительный путь файла, используете:
md5deep -r -z -l *
получается информация (которую можно перенаправить для сохранения в файле "md5deep * > output.txt") вида:
57 0cfbc88da15e6d31d3ad438d50f14eed docs/DVD05/disc05.iso 14325604 7cd30a721a2e672c3d08c932760be0e3 Edocs/2005/2005-08.tar.gz 7944551 b13aa16388acaf55c5bcf71e8b5c158c Edocs/2004/2004-12.tar.gz
Безопасность
В связи с лёгкостью нахождения коллизий в MD5 md5sum не рекомендуется[1] к дальнейшему использованию.
См. также
- GNU Coreutils включает md5sum для систем GNU
- Cygwin включает md5sum для систем Microsoft Windows
- GnuWin32 включает md5sum для систем Microsoft Windows (в пакете CoreUtils)
- sha1sum
- tthsum
- Windows MD5summer
Примечания
- Vulnerability Note VU#836068 - MD5 vulnerable to collision attacks . www.kb.cert.org. Дата обращения: 12 сентября 2016.
Ссылки
md5sum(1)
— страница справки man по пользовательским командам GNU/Linux (англ.)- virens. Как проверить CD и DVD диск после записи (недоступная ссылка). Записки дебианщика (16 ноября 2006). Архивировано 24 февраля 2012 года.
- MD5 Command Line Message Digest Utility — консольный клиент для Windows/MS-DOS/Unix для генерации/проверки MD5
- Vulnerability Note VU#836068 — запись об уязвимости MD5 от министерства внутренней безопасности США