воскресенье, 6 мая 2012 г.

Простое объяснение контрольной суммы файла в пакете



Контро́льная су́мма — некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении

Хеширование (иногда хэширование, англ. hashing) — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или дайджестом сообщения (англ. message digest).http://ru.wikipedia.org




Короче с первого раза не понял

Объясняю из области знаний, которые ближе к телу.

Сперва объясняю что такое хеширование :)

Вот представь, что приходит к тебе пациентка, а ты говоришь так резко сразу - "А как тебя зовут? А покажь ка сиськи!" . Меришь размер правой и левой, перемножает друг на друга и сразу берешь папку под получившимся номером. Для этого нужно чтоб все папки были бы одинаковой толщины и стояли в ряд - ты просто отмеришь сколько надо и вытащищь сразу нужную, не заглядываю в другие вообще.

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

А тут у нас hashing - ты сразу знаешь в какой папке искать. Но поскольку размер сисек может совпадать у нескольких пациенток -- тогда происходит "конфликт" -- и ты уже смотришь по имени, которая из них.


Теперь контрольные суммы.

Приходит пациентка, говорит -- "Я Вормиздухт". А ты так сразу - 'Покажь сиськи!", меришь, перемножаешь, сверяешься по бумажке. А у тебя под этим чилом никакой Вормиздухт и нету. Ты ей и говоришь - "Никакая ты не Вормиздухт". И давай качать ее по новой Ну в плане -- посылаешь куда подальше.

Вот как-то так :)

PS. Хрен ты это объяснение забудешь :) :P


Для создания MD5 и SHA1 контрольных сумм используется утилита md5sum и sha1sum соответственно. Данные утилиты идут в комплекте подавляющего большинства дистрибутивов Linux.

md5sum [опции] [файл]... md5sum [опции] --check [файл]

Создание контрольных сумм:
  • -b, --binary — читать данные файлов в двоичном режиме.(по умлочанию для DOS/Windows)
  • -c, --check — сверять вычисленные значения MD5 со значениями из файла
  • -t, --text — читать данные файлов в текстовом режиме (по умолчанию)
Проверка контрольных сумм:
  • --status — выводить только код проверки
  • -w, --warn — предупреждать о контрольных строках с неправильным форматом
Разное:
  • -version — информация о версии
Пример создания контрольной суммы:
Снимаем MD5 с файла ubuntu-8.04-desktop-i386.iso
Код:
$ md5sum ubuntu-8.04-desktop-i386.iso
После успешного выполнения должен отобразиться следующий результат:
Код:
8895167a794c5d8dedcc312fc62f1f1f ubuntu-8.04-desktop-i386.iso

Утилита sha1sum имеет идентичный синтаксис, как у md5sum






Создание MD5 и SHA1 хешей для Windows:




Пусть мы хотим узнать контрольную сумму файла 1111.png. Для этого жмем правую кнопку мыши на этот файл, и выбираем "Свойства" (последнее меню в списке). А там уже выбираем вкладку контрольные суммы. Программа автоматически запустит проверку.




md5deep
md5deep - набор свободных (GPL v2) утилит, на все случаи жизни, для создания и проверки MD5(md5deep), SHA-1(sha1deep), SHA-256(sha256deep), Tiger(tigerdeep) и Whirlpool(whirlpooldeep) контрольных сумм. В настоящий момент данный пакет имеет поддержку и портирован на следущие платформы:

  • Microsoft Windows (Vista, XP, 2003, 2000, NT)
  • Cygwin порты
  • Linux
  • FreeBSD, OpenBSD и NetBSD
  • Mac OS X
  • Solaris/OpenSolaris
  • HP/UX
Утилита md5deep внешне схожа с md5sum и имеет аналогичный синтаксис создания MD5 хешей. Основная особенность перед md5sum - это наличие рекурсивного создания хешей.
Более подробную информацию можно прочесть в readme или узнать так:
Код:
$ md5deep -h

Комментариев нет:

Отправить комментарий