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] к дальнейшему использованию.

См. такжеПравить

ПримечанияПравить

  1. Vulnerability Note VU#836068 - MD5 vulnerable to collision attacks. www.kb.cert.org. Дата обращения: 12 сентября 2016.

СсылкиПравить