Как посчитать контрольную сумму cd диска
Контрольная сумма используется для проверки целостности файла.
Ее можно охарактеризовать как цифровой отпечаток файла.
Проверяя значение Checksum, мы можем определить целостность файла, когда он был перенесен из одного места в другое.
Контрольная сумма представляет собой длинную строку данных, содержащую различные буквы и цифры.
Все популярные веб-сайты программного обеспечения предоставляют значение контрольной суммы для загруженного файла, с помощью которого мы можем подтвердить наши данные, проверив значение контрольной суммы.
Как подсчитать контрольную сумму файла из консоли Windows
Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.
Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:
Вот пример ее работы через несколько минут:
Инструменты командной строки для работы с контрольной суммой
Почти все дистрибутивы Linux предоставляют инструменты командной строки для различных алгоритмов контрольной суммы.
Вы можете сгенерировать и проверить контрольную сумму используя их.
Некоторые из стандартных инструментов командной строки, используемые в настоящее время, следующие:
- MD5 : md5sum
- SHA-1 : sha1sum
- SHA-256 : sha256sum
- SHA-384 : sha384sum
- SHA-224 : sha224sum
- SHA-512 : sha512sum
Какой алгоритм вычисления контрольных сумм самый правильный
MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.
MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.
Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.
Считаем контрольную сумму в PowerShell
PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.
Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:
Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.
По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.
Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:
- SHA1
- SHA256 (по умолчанию)
- SHA384
- SHA512
- MD5
Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:
Тогда результат работы будет выглядеть так:
Как проверить CD и DVD диск после записи
Задача: диск записан - нужно проверить правильность записанных данных.
Решение: для этого есть простые средства, типа dd и md5sum. Реализация в виде скриптов.
Для этого нам нужен md5sum и несколько утилит, входящих в любой уважающий себя дистрибутив. Есть несколько способов, приведу известные мне ниже (если кто предложит ещё - с удовольствием добавлю) .
Подсчёт контрольной суммы файла
Для того, чтобы просто подсчитать MD5-сумму уже имеющегося iso-образа, пишем в консольке
Через некоторое время вы увидите что-то вроде этого:
Для скачиваемых из Интернета iso-образов обязательно рядом с ним лежит либо файл MD5SUMS, или такой же по имени файл, только с расширением md5 - не забывайте их скачивать. Так можно будет всегда проверить, правильно ли вы скачали образ диска.
Кстати говоря, кроме метода MD5 встречается SHA1 - его особенно любят федоровцы. Синтаксис тот же, что и у md5sum, только утилита называется соответственно sha1sum.
Проверка правильности записи на CD и DVD диск
Есть несколько способов сделать это, и большинство из них основано на подсчёте контрольной md5-суммы исходного образа и записанного на диск. Их совпадение гарантирует правильность записи и то, что файлы на диске не повреждены.
Вставляем пропаленный диск, и, не монтируя его, пишем в консольке:
Если у вас другое устройство для чтения/записи дисков (не /dev/cdrom) - измените команду соответственно. После выполнения этой команды вы увидите:
$ dd if=/dev/cdrom bs=2048 | md5sum 355562+0 входных записей
355562+0 выходных записей
728190976 bytes transferred in 299,413377 seconds (2432059 bytes/sec)
e941bb0ecac20a2043c9f8e69fbab63a -
Если у вас есть файл MD5SUMS или my.iso.md5 - проверьте, совпадают ли контрольные суммы. Если у вас такого файла нет, но есть образ диска - просто подсчитайте его контрольную сумму, как говорилось выше: md5sum my.iso
Для DVD-дисков
Здесь всё немного сложнее: дело в том, что при записи на DVD пишется так же и служебная информация, поэтому для проверки DVD-дисков утилитой dd нужно точно указывать размер и количество блоков. Для того, чтобы узнать, сколько значимых блоков (extents) имеется в iso-образе, выполняем команду (вводите именно так, как написано, меняя тольк имя образа):
Результатом её выполнения будет вывод:
$ dd if=/dev/cdrom bs=2048 count=169383 | md5sum 169383+0 records in
169383+0 records out e941bb0ecac20a2043c9f8e69fbab63a -
Как видно, что записанный на DVD образ и isoшник на жёстком диске совпадают, так что запись прошла успешно.
для DVD-дисков обязательно нужно указать размер и количество считываемых блоков, иначе утилита dd может считать служебные данные, что исказит значение контрольной суммы и вы будете думать, что запороли болванку в то время как (возможно) данные записаны верно. Более подробно об этом методе говорится, например, здесь.
Пример неправильного подсчёта контрольной суммы: Взяли iso-образ, пропалили его:
dd if=/dev/cdrom | md5sum
169392+0 records in
169392+0 records out
1188f67d48c9f11afb8572977ef74c5e -
Не сходится! А всё почему? Потому, что утилита dd считали все блоки ( 169392 ), как вы её и просили. Но это неправильно: значащих блоков там меньше ( 169383 ), поэтому контрольная сумма совсем другая . Всегда указывайте количество и размер блоков при проверке DVD-дисков!
Если утилита ничего не напишет - значит, все файлы совпадают и запись диска проведена правильно. Это работает и для CD, и для DVD-дисков.
Выдаст он нам что-то вроде:
Выделенные полужирным цифры и подставляем в качестве цели для записи - это наш привод.
Резюме
Приведённые способы (в порядке их предпочтительности) позволяют проверить, правильно ли прошла запись на болванку. Этой информации должно хватить для выполнения данной задачи. Но если кто может предложить другие способы - комментарии всегда открыты.
33 комментариев: |высказаться!| RSS-лента дискуссии.|
Единственная проблема, что md5 уже считается ненадёжной. У себя на FreeBSD я использую sha256, хотя конечно, никогда не натыкался на случаи совпадения MD5 у разных файлов.
2 jankkhvej
Единственная проблема, что md5 уже считается ненадёжной.
Для шифрования банковских транзакций в электронных платежах - да. Но ведь тут скачивание файлов. Смысл? :-)
А если просто попробовать переписать данные с диска на комп? так нельзя разве проверить?
2 kri
А если просто попробовать переписать данные с диска на комп?
Ну да, можно. А как "переписать с диска на комп" загрузочный LiveCD? И чем проверить правильность записи его? Вот тут-то нам эти способы и помогают. И потом проще и быстрее: в скрипт завернул и забыл.
Насчёт смысла md5 и sha256
Честно говоря, не знаю, что там сечас используют для шифрования банковских транзакций, но то, что дистфайлы во фре имеют две контрольные суммы, MD5 и SHA256 - факт.
И потом я тут тесты сделал простые:
solik@solik$ md5 -t
MD5 time trial. Digesting 100000 10000-byte blocks . done
Digest = 766a2bb5d24bddae466c572bcabca3ee
Time = 4.021527 seconds
Speed = 248661776.079997 bytes/second
solik@solik$ sha256 -t
SHA256 time trial. Digesting 100000 10000-byte blocks . done
Digest = 3f7daf2b36997b6eb269f63176e09fee8f6daa13202d87e020da63d262c6a4ca
Time = 15.460602 seconds
Speed = 64680535.240904 bytes/second
4 и 16 секунд - разница огого, особенно если считать суммы образов iso. Но если подсчёт идёт непосредственно с DVD/CD - смысл одинаков, скорость всё равно ограничена железом.
2 jankkhvej
Насчёт смысла md5 и sha256
Ого! Спасибо огромное - прямо целое исследование! Обязательно включу в пост при следующей правке! Как говорится, приходите ещё :-)
большое спасибо за статью - очень помогла! =)
Если диск не загрузочный и нужно просто прогнать файлы, получить их контрольные суммы или просто проверить читаемость и нет желания копировать все на веник - можно воспользоваться find. Что-то типа:
find /cdrom/ -exec md5sum <>;
Вместо md5sum можно поставить любую программу. Можно поиграться с фильтрами, чтобы проверять читаемость отдельных файлов.
для cdrom и dvd можно так же использовать cat:
например cat /dev/cdrw | md5sum
или даже так
md5sum /dev/cdrom
Ну да, эти и перечисленные в статьях методы - вариации на тему. Главное, чтобы люди не падали в обморок, если у них не сойдутся md5-суммы для DVD. Кстати, сам по началу так и делал :-)
А еще, я где-то читал, что CD и DVD надо проверять через несколько дней после записи, да и потом регулярно, раз в несколько месяцев, так как иногда они имеют свойство портиться. Это конечно стоит делать для важных данных, но лучше тогда их вообще дублировать.
А еще, я где-то читал, что CD и DVD надо проверять через несколько дней после записи
Обычно это свойственно низкосортным болванкам и CD/DVD-RW. На них лучше важную информацию не хранить вообще. Всё важное, безусловно, записывается на 2-3 болванки.
Проверял скаченные образы Дэбейна и один из них на md5sum debian-40r1-i386-CD-14.iso выдал нижеследующее
md5sum:debian-40r1-i386-CD-14.iso: Input/output error
Видно что образ подпорченный. но что примечательно большинство файлов из него в норме. В самой ISO`шке присутствует файл md5sum.txt в котором есть контрольная сумма на каждый файл диска.
Может кто подскажет существует ли простой способ увидеть какие из файлов порченные или их не хватает, чтобы не перебирать вручную каждый?
Вообщем блесну:
md5, sha - хэш функции, чаще используются для проверки, и из гих сложно получить оригинал. sha - вычислительно сложнее.
т.е. надежность здесь нужны только если вы подозреваете что в дистрибутив что-то встроил злоумышленник.
Для md5 и sha - доказана ненадежность.
для чисто проверки на ошибки копирования используются контрольные суммы, например crc32 - очень быстрая весчь(файлы sfv). (сейчас может имеет смысл использовать crc64) - пакет cksfv.
Записывал 3 dvd-видеодиска с одного iso-шника, чексум по Вашему первому варианту у меня оказался провальный. Причём чексум всех 3х дисков идентичен, диски ессно читабельны. Думаю дело в числе блоков, точнее в вычислении его скриптом echo $(( $(ls -l my.iso | awk '< print $5 >') / 2048 )). Проверил диск утилитой cdck, который в конце мне сказал количество блоков 2046256 (Ваш скрипт написал о iso-шнике 2046177). После повторения операции с dd с указанием количества блоков от cdck чексум совпадает. Вы можете это объяснить?
Пордон, всё-таки не совпадают. Кстати, если записать диск меньше 1 Гб, то сумма совпадает. Что могло быть не так?
ответ на поставленный мной вопрос оказался довольно прост. Захожу на папку с дебейном св /mnt/cdrom/ и ввожу md5sum -c md5sum.txt и в получаемом консольном выводе разу видно по надписям все нормальные "-OK".
Создать такой файлик тоже просто, лишь в каталоге будущего диска ввести "find .>md5sum.txt".
Метод хорош для детальной сверки целостности каждого файла, хотя он и более медлителен.
Если надо убедиться, что все файлы считываются, то:
cp -rf /mnt/cdrom temp.dir
Кстати, утилита dd уже правильно считает контрольную сумму для записанной болванки без указания размеров блока.
dd if=/dev/cdrom | md5sum
для записанной болванки и её образа на винте дают одинаковый результат.
Столько способов для такого простого действия. Большое спасибо автору статьи и всем остальным. Помогло даже мне :)
Немного не по теме, но к вопросу о контрольных суммах.
Создадим директорию
$mkdir samedir
В ней создадим файл
$touch samefile
Теперь создадим образ iso из полученной директории
$genisoimage -R -J -o sameiso.iso samedir
И посчитаем для созданного образа контрольную сумму
$md5sum -b sameiso.iso
Так вот, если две последние команды выполнять несколько раз подряд, то контрольные суммы все время получаются разные.
Когда заметил первый раз, подумал, образ кривой получился.
Потом увидел, что контрольная сумма все время меняется.
Подозреваю, что как-то связано с системными часами, но отчего конкретно зависит - не пойму.
Можно ли как-то сгенерировать два образа с одинаковыми контрольными суммами? Ведь тот же jigdo тоже генерирует iso из файлов, однако контрольная сумма совпадает с заданной.
Отвечу сам себе.
Да, действительно, в образе iso присутствует информация о времени создания. Это видно в дампе, а также указано в описании стандарта.
Поэтому сгенерировать два образа с одинаковой контрольной суммой так просто не удастся. В общем-то, это и не нужно. Просто нужно понимать, почему контрольные суммы отличаются.
Добавлю от себя несколько слов о проверке контрольных сумм при записи образов DVD. Я рассматриваю случай, когда команды вводятся вручную, без использования скрипта.
При проверке с помощью команды dd данные подаются на вход md5sum, таким образом, посчитанные контрольные суммы приходится сверять визуально, что не очень удобно.
Я воспользовался таким способом:
1. Создаем файл-очередь
2.Создаем образ для записи на диск. Здесь предполагается, что файлы для записи помещены в одну папку disk.
genisoimage -R -J -o - disk | tee /tmp/disk1.iso >/tmp/disk1.fifo &
md5sum -b /tmp/disk1.fifo >/tmp/disk1.md5
первая команда генерирует образ и направляет данные на вход команды tee, которая перенаправляет их на два потока: в iso-файл и в файл очередь, откуда они попадают на вход md5sum. Генерируется образ и одновременно подсчитывается контрольная сумма.
Как восстановить исходный .iso-образ из которого был записан DVD, так чтобы даже сошлись суммы md5? Просто взять и создать .iso-образ не получаеться, суммы разные.
[b]Как восстановить исходный .iso-образ из которого был записан DVD, так чтобы даже сошлись суммы md5?[/b]
Я чуть выше писал, что в iso-файле содержится временной штамп - дата и время создания. Этого достаточно, чтобы суммы не сошлись. Поэтому стандартными средствами, скорее всего, не получится.
Можно попытаться залезть в потроха DVD-диска и вытащить информацию из спец. полей, а потом внести соответствующие изменения в iso-файл.
Только стоит ли оно того?
Да, автором описаны методы, имеющиеся на 2006 год как понимаю, и выглядят они конечно очень извращенно:) Прочитав их я ушел искать другой способ, современный:) Нашлась программка cdshot, сама крохотная, установки не требует, запускаете, указываете привод, ждете пару минут, получаете все необходимые контрольные суммы. Есть один нюанс, для корректной работы нужно чтобы проводник не был запущен, то есть что бы никакие папки не были открыты, иначе программа выдает ошибку. Поэтому создайте ярлычек на рабочем столе и через него запускайте
@Анонимный комментирует.
Да, автором описаны методы, имеющиеся на 2006 год как понимаю, и выглядят они конечно очень извращенно
О да, одну команду в консоли написать - это надо быть доктором наук. Это только для избранных.
Прочитав их я ушел искать другой способ, современный Нашлась программка cdshot
Анонимус. я даже не знаю, что на это сказать. Ну, понятно, что пост мы не читаем (хотя он на русском), но на название блога-то можно глаза поднять!?
cdshot.exe 1.64 MБ (1 723 904 байта)
под винду, да!? Ну и методы, в скотлент-ярде! :-)
Ты абсолютно беспощаден, Анонимус, я тебе вот что скажу.
сама крохотная, установки не требует
БЛОГ ПРО ЛИНУКС, мать его за ногу! ;-) И куда крохотнее-то?
-rwxr-xr-x 1 root root 22K 2007-01-31 05:51 md5sum
-rwxr-xr-x 1 root root 38K 2007-01-31 05:51 dd
60Кб на всё. Так что идите-ка вы со своими "современными" методами и "современными" системами по добру по здорову.
Спасибо, ваша статья очень помогла. Диск, к счастью, записался нормально. хотя у меня были серьёзные сомнения
Есть ещё классная программка dvdisaster, есть в репозитории debian. Она графическая, может считывать контрольные суммы образов, сравнивать, проверять качество записанных дисков. Попробуйте.
попробовал проверить сд с записанным на него systemrescuecd4.5.1 .Выходит,что сд лучше по приведенной методике для двд. ошибки скорей всего от плохого кач-ва сдшек.dmesg выдавал end_request: I/O error, dev sr0, sector 866300. Проверил dd старый записанный alkid на сд, ошибок вв\вывода не было,dmesg спокоен и метод для сд сработал, .Linm@linm-desktop:~$ umount /dev/cdrom
linm@linm-desktop:~$ sudo dd if=/dev/cdrom | sha1sum
dd: чтение «/dev/cdrom»: Ошибка ввода/вывода
866296+0 записей получено
866296+0 записей отправлено
скопировано 443543552 байта (444 MB), 97,8822 c, 4,5 MB/c
dc90448649068d17e66e205400532cf980dea291 -
linm@linm-desktop:~$ dd if=/dev/cdrom bs=2048 count=216573 | sha1sum
216573+0 записей получено
216573+0 записей отправлено
скопировано 443541504 байта (444 MB), 98,1283 c, 4,5 MB/c
93e689d218f412d0096da26053ea9828aa5dc7b6 -
linm@linm-desktop:~$ cd ~/Загрузки/ && sha1sum *.iso
93e689d218f412d0096da26053ea9828aa5dc7b6 systemrescuecd-x86-4.5.1.iso
linm@linm-desktop:~/Загрузки$ echo $(( $(ls -l *.iso | awk '< print $5 >') / 2048 ))
216573
после этого проверил dd старый записанный alkid на сд, ошибок вв\вывода не было,dmesg спокоен и метод для сд сработал
При скачивании ISO образов и архивов больших размеров всегда есть вероятность получить «битый» файл. Во времена Dial-UP такое было сплошь и рядом. И хотя сейчас такое случается намного реже, чтобы убедиться, что перед вами «оригинальный» файл придумали контрольные суммы, которые вычисляются на основе содержимого и позволяют заметить несоответствие даже одного байта.
То есть, если вы измените один байт в проверяемом файле, то и контрольная сумма такого файла так же изменится.
Проверка файла с помощью контрольной суммы
Мы уже изучили различные методы генерации значений контрольной суммы.
Теперь мы можем узнать, как проверить правильность файла, используя методы контрольной суммы.
Давайте загрузим файл ISO с веб-сайта.
Как вы можете видеть, будет указано значение контрольной суммы, соответствующее любому файлу.
Давайте загрузим наш образец ISO и проверим его целостностьь, сравнив значение контрольной суммы для загруженного файла и значение md5sum на веб-сайте.
2017-02-08 21:52:39 (206 KB/s) – ‘dsl-4.4.10.iso’ saved [52328448/52328448]
$ md5sum dsl-4.4.10.iso
5cb7e0d4506c249b78bbe0cd4695b865 dsl-4.4.10.iso
Вы можете подтвердить целостность загруженного ISO, сравнив значение контрольной суммы.
Кажется, оно совпадает , что означает, что вы скачали тот файл.
Если вы удалите или измените хотя бы один символ из любого текстового файла внутри изображения iso, алгоритм контрольной суммы будет генерировать совершенно другое значение контрольной суммы для этого измененного iso-образа.
И хэш сумма определенно не будет соответствовать контрольной сумме, предоставленной на странице загрузки нашего веб сайта.
Подскажите,пытаюсь скачать сборку Linux SolydX и с офсайта и с других источников:контрольные суммы ISO-образа всегда не совпадают!Скачивал несколько раз и по Wi-Fi и по кабелю(соединение стабильное,скорость хорошая)-результат один и тот же.В чём тут дело и стоит ли устанавливать?Скачиваю в windows7.Iso-образ проверяю программой HashTab
Ни разу не пробовал HashTab, это никсовая программа или виндовая? И какой алгоритм хэширования?
Это прога из под Windows,встраивается прямо в Проводник и в св-вах любого файла появляется вкладка Хэш-сумма файла и можно сразу сравнивать с исходной контр.суммой!
Алгоритмов там море(наверное,все известные).Меня интересовал только SHA-256
Как именно можно получить контрольную сумму скачанного файла?
Так пишут на сайте как правило
А КАК ИМЕННО делается проверка файла с помощью контрольной суммы?
Если я правильно понял вопрос 🙂
Кто искал подсчёт контрольных сумм, нашёл для себя прогу KCheckHash. Встраивается в систему, полноценный гуи, всё на русском. Рекомендую)
Anything in here will be replaced on browsers that support the canvas element
Passbolt – это менеджер паролей с открытым исходным кодом, который позволяет безопасно хранить и передавать учетные данные для входа на сайт, пароль роутера, пароль Wi-Fi и т.д. В этом руководстве будет показано, как установить Passbolt Community Edition (CE) на Ubuntu 22.04 с сервером базы данных PostgreSQL, который обычно быстрее, чем сервер базы данных MariaDB/MySQL. Особенности […]
socialscan – это инструмент командной строки для проверки использования электронной почты и имен пользователей социальных сетей на онлайн-платформах. Если задан адрес электронной почты или имя пользователя, socialscan возвращает, доступен ли он, занят или недействителен на онлайн-платформах. Другие подобные инструменты проверяют доступность имени пользователя, запрашивая страницу профиля рассматриваемого имени пользователя и на основе такой информации, как […]
Многие советы по безопасности, как правило, делятся на два лагеря: предназначенные для предприятий с постоянно работающими командами безопасности и инфраструктуры, или быстрая установка инструментов без контекста для одиночных веб-разработчиков. В этой статье мы пойдем по среднему пути и рассмотрим некоторые способы безопасного управления веб-сервером для различных распространенных сценариев развертывания. Цель – обеспечить лучшее понимание инструментария […]
Что такое afrog afrog – это высокопроизводительный, быстрый и стабильный, PoC настраиваемый инструмент для сканирования уязвимостей. PoC включает CVE, CNVD, пароль по умолчанию, утечку информации, идентификацию фингерпринтов, несанкционированный доступ, произвольное чтение файлов, выполнение команд и т.д. Он помогает специалистам по сетевой безопасности быстро проверять и своевременно устранять уязвимости. Особенности Основан на ядре xray, но не […]
Краткое руководство по сканированию портов Сканирование портов – это враждебная техника, часто используемая специалистами по тестированию на проникновение и хакерами для сканирования компьютеров, подключенных к Интернету, и определения того, какие приложения или службы прослушивают сеть, обычно для проведения таргетированных атак. Как правило программное обеспечение безопасности обнаруживает активное сканирование портов и отмечает его как потенциальную угрозу. […]
У меня есть файл ISO, который я записал на CD. Теперь, как я могу проверить, правильно ли создан CD? Мне нужна команда, которая вычисляет хеш-сумму, которую я могу использовать для проверки с хеш-суммой, которую я вычисляю в файле ISO. В идеале команда должна:
- Работать независимо от файла ISO: то есть я не хочу хранить список хэш-сумм для каждого файла на диске или запоминать количество блоков
- Будьте относительно коротки: однострочная команда хороша, цепочка команд длиной в две строки - это нормально, сценарий, занимающий одну страницу, - нет
- Быть достаточно эффективным: например, dd диск обратно в файл и запуск md5sum по файлу недопустим
Если нет ответа, который не может удовлетворить всех, я буду признателен и за ближайший матч. Еще лучше, если вы скажете мне, почему это не так просто.
Основная проблема заключается в том, что мы хотим взять md5sum точно такой же информации, которая изначально была в ISO. Когда вы записываете ISO на CD, на конце диска, вероятно, есть свободное место, что неизбежно меняет сумму md5. Таким образом, самый короткий путь:
не работает . Что работает (и это часто встречается в онлайн- документации) - это только чтение точного количества байтов с устройства и последующее выполнение md5sum . Если вы знаете количество байтов, вы можете сделать что-то вроде:
где 'xxxxx' - это размер iso в байтах.
Если вы не знаете количество байтов, но на вашем диске все еще есть iso, вы можете получить их, используя ls, выполнив что-то вроде следующего ( взято отсюда ):
Есть много других однострочных конструкций, которые должны работать. Обратите внимание, что в каждом случае мы используем dd чтение байтов с диска, но мы не передаем их в файл, а сразу передаем их в md5sum.
Возможные улучшения скорости можно сделать, выполнив некоторые вычисления, чтобы использовать больший размер блока ( bs= в dd команде).
Вы можете упростить dd if=/dev/cdrom | до
Кстати, у вас (phunehehe) должен быть размер iso вместе с контрольной суммой MD5. Это особенно важно для MD5, который частично сломан, но это хорошая идея как для безопасности, так и для удобства использования, независимо от того, какую контрольную сумму вы используете.
@Gilles: на самом деле, использование dd с bs размером кэша устройства может ускорить передачу данных, в отличие от простого перенаправления ввода.
@ Жиль: что вы подразумеваете под "MD5, который частично сломан"? И почему я должен сохранять размер файла, когда, если что-то не так, контрольная сумма должна сообщить мне сразу?
@phunehehe: Есть известные криптографические недостатки с MD5 (неизвестно (публично), как генерировать коллизию для данного файла, но это может произойти). Знание размера файла дает вам немного больше уверенности (хотя и не намного). Это также дает вам немедленную обратную связь для распространенных случайных ошибок, таких как усеченные загрузки.
Для этой задачи есть программа. Это называется - checkisomd5 . В Ubuntu его можно установить командой:
Как вы используете его? checkisomd5 /dev/sr0 дает мне: проверка носителя завершена, результат: нет. Информация о контрольной сумме недоступна, невозможно проверить носитель.
Контрольная сумма должна быть встроена в ISO-образ с помощью инструмента "implantisomd5". Это нужно сделать до того, как iso будет записан на диск. Утилита включена в "checkisomd5".
Если размер изображения на диске делится на 2048, на целое число, которое кажется очень распространенным, то вы можете получить точную сумму MD5 следующим образом, где sr0 находится название оптического устройства, которое можно найти с помощью, lshw -C disk и где 'count' - это делимое размера изображения, деленное на 2048.
Многие компакт-диски, вероятно, используют дорожки «Mode 1», которые имеют 2048 байт пользовательских данных на сектор . («Режим 2» хранит 2336 байтов пользовательских данных на сектор, но ему не хватает более продвинутых возможностей обнаружения и исправления ошибок, предлагаемых режимом 1, в результате чего режим 2 будет менее полезен для данных, где ошибки не могут быть допущены.)
В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.
Файловый менеджер Total Commander
Total Commander — это популярный файловый менеджер, работающий на платформах Microsoft Windows и Android. В нем есть встроенная функция вычисления контрольных сумм.
После чего вы можете выбрать один из алгоритмом вычисления контрольных сумм.
По-умолчанию Total Commander создает файл с именем проверяемого и с расширением по имени выбранного алгоритма расчета контрольной суммы.
Генерирование контрольных сумм Linux
Контрольная сумма генерируется алгоритмом контрольной суммы.
Он генерирует значение контрольной суммы, беря файл в качестве ввода.
MD5 и SHA (Secure Hash Algorithms) – самые популярные алгоритмы, используемые для создания контрольных сумм
Примеры
Давайте рассмотрим некоторые примеры использования этих инструментов командной строки для создания значений контрольной суммы.
Я создал один из тестовых файлов index.html.
Давайте сгенерируем значение контрольной суммы для этого файла, используя указанные выше средства.
md5sum:
Вы можете видеть мой файл, я сгенерировал значение контрольной суммы, соответствующее этому файлу, используя алгоритм MD5.
$ md5sum index.html
c36f11e50d72d1a090e9ebab382994fa index.html
sha1sum:
SHA-1 (Secure Hash Algorithm 1) – это криптографическая хеш-функция, разработанная Агентством национальной безопасности США.
~$ sha1sum index.html
e45d71387b61782e65f766dd11381762d00f9e15 index.html
sha256sum/sha512sum/sha224sum/sha384sum:
SHA-2 – это семейство двух аналогичных хеш-функций с разными размерами блоков, известными как SHA-256 и SHA-512.
Они отличаются размером слова; SHA-256 использует 32-битные слова, тогда как SHA-512 использует 64-битные слова.
Существуют также усеченные версии каждого стандарта, известные как SHA-224, SHA-384, SHA-512/224 и SHA-512/256.
Алгоритм SHA-256 генерирует почти уникальный 256-битный (32 байт) файл фиксированный размер.
Хэш – это односторонняя функция, которую нельзя дешифровать.
Мы можем генерировать значение хэша, используя этот алгоритм SHA-256 для того же файла, используя следующую команду:
~$ sha256sum index.html
b29c03bfe9851088349c170ec27f34a0c7869dfcbdfc2c42cd79fb0315e20eb6 index.html
$ sha512sum index.html
79e538a320e984bb3a0d32312140b37d6ac50bc1127edfd6027990955ef7fef499855d928caec index.html
$ sha224sum index.html
268729b7123abe0bd17fdf64402c27b4afa56be0ac3b869c8028798e index.html
$ sha384sum index.html
d80cb792dcb3ac3a8e4d3e18e47aa56b8318d5d4c28c5cf1b4602375def6d03f38303b76530index.html
Выводы
Если вы сомневаетесь в целостности скаченных файлов из интернета, особенно когда это касается оригинальных образов операционных систем, то проверьте их контрольную сумму. Сделать это можно как с помощью уже имеющихся у вас программ, так и воспользовавшись встроенными средствами операционной системы Windows.
Скачивая файлы, программы или образы дисков вы наверняка замечали, что вместе с данными файлами часто распространяют и какие-то зашифрованные строки, которые называются контрольными или хеш суммами. В данной статье мы расскажем о том, что такое контрольная сумма, для чего ее используют и как проверить контрольную сумму для строк или файлов.
Генерирование контрольных сумм Linux
Контрольная сумма генерируется алгоритмом контрольной суммы.
Он генерирует значение контрольной суммы, беря файл в качестве ввода.
MD5 и SHA (Secure Hash Algorithms) – самые популярные алгоритмы, используемые для создания контрольных сумм
Проверка контрольной суммы файла
Если вам нужно проверить контрольную сумму файла (например, образа диска или программы), то вам понадобится специальная программа, которая умеет высчитывать контрольные суммы. Самой популярной программой такого рода является HashTab.
После установки данной программы в свойствах файла появится новая вкладка «Хеш-суммы файлов», в которой будет отображаться хеш-сумма выбранного вами файла.
При этом пользователь можно изменить набор алгоритмов, которые программа HashTab использует для расчета хеш-суммы. Для этого нужно нажать на ссылку «Настройки», выбрать нужные алгоритмы и сохранить изменения с помощью кнопки «ОК».
Полученные значения контрольных сумм можно скопировать, для этого нужно кликнуть на значению с помощью правой кнопки мышки.
Также HashTab позволяет сравнивать файлы. Для этого нужно нажать на кнопку «Сравнить файл» и выбрать другой файл.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Как вычислить контрольную сумму он-лайн
Контрольную сумму можно проверить он-лайн. Но я не буду рекомендовать этот способ, так как если размер вашего файла несколько ГигаБайт, то это займет много времени и всегда есть вероятность ошибки при передаче файла. Кроме того делиться своими файлами со сторонними сервисами не правильно.
Файловый архиватор 7-Zip
7-Zip — свободный, бесплатный файловый архиватор с высокой степенью сжатия данных. Он поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.
Этот архиватор имеет встроенную функцию вычисления контрольных сумм. Запустить ее можно прямо из контекстного меню Windows:
Если выбрать «звездочку», то программа подсчитает сразу несколько контрольных сумм:
Полученные данные можно выделить и скопировать в текстовый документ.
Для чего нужны контрольные суммы
У контрольных сумм две задачи:
- Убедиться, что файл скачался корректно.
- Убедиться, что файл не был изменен злоумышленниками.
Зная контрольную сумму оригинала, можно проверить является ли ваша копия подлинной.
Как узнать контрольную сумму файла в Windows
Разумнее вычислить контрольную сумму локально на своем компьютере. Это быстро и конфиденциально. В этой статье я опишу несколько способов получения контрольных сумм, как с помощью сторонних программ, так и непосредственно с помощью самой операционной системы Виндовс.
Проверка контрольных сумм онлайн
Если нужно проверить контрольную сумму какой-то строки (например, пароля), то проще всего воспользоваться онлайн сервисами. Найти такие онлайн сервисы можно в любом поисковике по запросу «hash online».
Чтобы проверить приведенную выше таблицу введем строку «Hello, world!», выберем алгоритм MD5 и нажмем на кнопку «hash».
В результате на экране появится строка со значением хеш-функции MD5.
Не сложно заметить, что полученное значение полностью совпадает с тем, которое указано в таблице выше, хотя данные из таблицы были получены другим способом.
Что такое контрольная сумма
Контрольная сумма или хеш-сумма – это значение, которое было рассчитано по некоторому алгоритму на основе имеющихся файлов или данных. Особенностью контрольной суммы является то, что ее алгоритм, при одинаковых входных данных всегда выдает одинаковое значение. При этом малейшее изменение входных данных кардинально меняет значение контрольной суммы.
Также нужно упомянуть, что контрольную сумму нельзя использовать для получения исходных данных. То есть нельзя «расшифровать» хеш-сумму и получить данные которые были хешированы, хеш-сумму можно только сравнить с другой хеш-суммой. Это особенность открывает дополнительные возможности. Например, хеш-суммы используются для хранения паролей. Когда вы регистрируетесь на каком-то сайте и вводите свой пароль, то он не хранится на сервере в открытом виде. Вместо этого хранится только его контрольная сумма. А когда вы входите в свой аккаунт с использованием пароля, система получается ваш пароль, высчитывает его хеш-сумму и сравнивает с хеш-суммой, которая хранится на сервере. Если хеш-суммы совпали, значит пароль верный и вы можете войти в аккаунт, если хеш-суммы не совпадают, значит пароль не верный и вас перенаправляют на страницу для восстановления пароля.
Для высчитывания контрольной суммы существует множество различных алгоритмов или так называемых хеш-функций. Самыми известными и популярными алгоритмы являются: CRC32, MD5, SHA-1 и SHA-2. Но, есть и множество других алгоритмов, некоторые из которых имеют широкое применения, а некоторые используются только для специфических задач. При этом часть существующих алгоритмов признаны устаревшими или уязвимыми и больше не используются. Так, алгоритм MD5 практически полностью перестал использоваться поскольку выяснилось, что он может выдавать одинаковые значения для разных входных значений.
Для примера продемонстрируем, как выглядит контрольная сумма на практике. Например, возьмем строку «Hello, world!» и высчитаем ее контрольную сумму с использованием нескольких популярных алгоритмов.
Как видно, каждый алгоритм выдает значение, которое не имеет совершенно ничего общего с исходными данными. И сколько раз мы бы не высчитывали контрольную сумму строки «Hello, world!», мы каждый раз будем получать одни и те же значения.
Читайте также: