Добавляем вычисление SHA-1 и MD5 хешей в контекстное меню файлов / Хабр

Что такое контрольная сумма?

Название появилось от summation check (саммэйшен чек) – число, вычисляемое по особым правилам по содержимому блока данных с целью проверки получателем целостности данных при хранении или передаче. Если контрольная сумма, вычисленная получающим устройством, не совпадает с принятой суммой, то вывод один – целостность данных нарушена.

Что такое контрольная сумма md5

Вы, наверное, часто сталкивались с этим термином при загрузке больших файлов из Интернета. MD5 – один из самых распространенных алгоритмов, используемых для измерения контрольной суммы файлов. Он часто помогает в обнаружении файлов, которые были злонамеренно изменены или искажены во время передачи/загрузки.

Что такое контрольная сумма

Контрольная сумма или хеш-сумма – это значение, которое было рассчитано по некоторому алгоритму на основе имеющихся файлов или данных. Особенностью контрольной суммы является то, что ее алгоритм, при одинаковых входных данных всегда выдает одинаковое значение. При этом малейшее изменение входных данных кардинально меняет значение контрольной суммы.

Эта особенность позволяет использовать контрольную сумму для проверки целостности файлов или данных. Например, вам нужно отправить какой-то файл, и вы хотите убедиться, что он не будет поврежден или изменен на своем пути к получателю. Для решения этой задачи можно использовать контрольную сумму.

Высчитываете контрольную сумму и отправляете ее вместе с файлом. После чего получатель файла повторно высчитывает контрольную сумму файла и сравнивает ее с вашей контрольной суммой. Если значения совпадают, значит файл оригинальный, если нет, значит он получил какие-то изменения.

Также нужно упомянуть, что контрольную сумму нельзя использовать для получения исходных данных. То есть нельзя «расшифровать» хеш-сумму и получить данные которые были хешированы, хеш-сумму можно только сравнить с другой хеш-суммой. Это особенность открывает дополнительные возможности.

Например, хеш-суммы используются для хранения паролей. Когда вы регистрируетесь на каком-то сайте и вводите свой пароль, то он не хранится на сервере в открытом виде. Вместо этого хранится только его контрольная сумма. А когда вы входите в свой аккаунт с использованием пароля, система получается ваш пароль, высчитывает его хеш-сумму и сравнивает с хеш-суммой, которая хранится на сервере.

Для высчитывания контрольной суммы существует множество различных алгоритмов или так называемых хеш-функций. Самыми известными и популярными алгоритмы являются: CRC32, MD5, SHA-1 и SHA-2. Но, есть и множество других алгоритмов, некоторые из которых имеют широкое применения, а некоторые используются только для специфических задач.

При этом часть существующих алгоритмов признаны устаревшими или уязвимыми и больше не используются. Так, алгоритм MD5 практически полностью перестал использоваться поскольку выяснилось, что он может выдавать одинаковые значения для разных входных значений.

Для примера продемонстрируем, как выглядит контрольная сумма на практике. Например, возьмем строку «Hello, world!» и высчитаем ее контрольную сумму с использованием нескольких популярных алгоритмов.

Adler: 32205e048a

CRC: 32ebe6c6e6

Haval: 5711dea10d85b988fcb1eed99ce7310c

MD2: 8cca0e965edd0e223b744f9cedf8e141

MD4: 0abe9ee1f376caa1bcecad9042f16e73

MD5: 6cd3556deb0da54bca060b4c39479839

RipeMD128: 3cbb446fc20277b2a4e4b8b8b40aa962

RipeMD160: 58262d1fbdbe4530d8865d3518c6d6e41002610f

Tiger: b5e5dd73a5894236937084131bb845189cdc5477579b9f36

SHA-1: 943a702d06f34599aee1f8da8ef9f7296031d699

SHA-256: 315f5bdb76d078c43b8ac0064e4a0164612b1fce77c869345bfc94c75894edd3

SHA-384: 55bc556b0d2fe0fce582ba5fe07baafff035653638c7ac0d5494c2a64c0bea1cc57331c7c12a45cdbca7f4c34a089eeb

SHA-512: c1527cd893c124773d811911970c8fe6e857d6df5dc9226bd8a160614c0cd963a4ddea2b94bb7d36021ef9d865d5cea294a82dd49a0bb269f51f6e7a57f79421

Whirlpool: 238034e71c9f4d712ef02f8fe109bc1f32425530088c1ea13786e1ffdc953a7d567db4aba11ce0226efdd5ed5d55abd087b58122f891e61df996a37e595131b5

Как видно, каждый алгоритм выдает значение, которое не имеет совершенно ничего общего с исходными данными. И сколько раз мы бы не высчитывали контрольную сумму строки «Hello, world!», мы каждый раз будем получать одни и те же значения.

:/>  В Windows 10 не работает кнопка Пуск: почему не открывается меню пуск – WindowsTips.Ru. Новости и советы

Установка программы

Берем

File Checksum Integrity Verifier utility — консольную утилиту для вычисления и сравнения хешей MD5 и SHA-1 от Microsoft. Там же можно прочитать, что это за зверь и с чем его едят. Скачанный файл Windows-KB841290-x86-ENU.exe можно открыть как zip архив и увидеть, что он содержит два файла: собственно fciv.exe и ReadMe.txt, содержащий справку к утилите.

Файл ReadMe нас не интересует, а fciv.exe нужно поместить в одну из директорий, прописанных в переменной PATH, дабы вызывать ее из командной строки без указания полного пути. Я поместил в system32. Проверить, что утилита работает, можно, натравив ее из командной строки на любой файл:

fciv -md5 C:test.dat — для вычисления MD5 fciv -sha1 C:test.dat — для вычисления SHA-1

Создание элемента контекстного меню

Для расширения контекстного меню файлов нужно будет немного подшаманить в реестре.

Запускаем regedit.exe, идем в HKEY_CLASSES_ROOT* — это раздел, отвечающий за контекстное меню всех типов файлов. В разделе shell создаем подраздел с любым именем (у меня это fciv_md5). В параметре по умолчанию прописываем желаемое название пункта меню (напрмер, Compute MD5).

cmd.exe /k fciv -md5 “%1”

Строка предписывает запустить cmd.exe с командой fciv -md5 “%1” и отобразить результат. Для добавления пункта для вычисления SHA-1 проделываем ту же последовательность действий, меняя лишь названия. Команда в этом случае выглядит так:

cmd.exe /k fciv -sha1 “%1”

Должно получиться что-то вроде этого:

Все вышеперечисленное одним файлом:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT*shellfciv_md5]
@="Compute MD5"

[HKEY_CLASSES_ROOT*shellfciv_md5command]
@="cmd.exe /k fciv -md5 "%1""

[HKEY_CLASSES_ROOT*shellfciv_sha]
@="Compute SHA"

[HKEY_CLASSES_ROOT*shellfciv_shacommand]
@="cmd.exe /k fciv -sha1 "%1""

Вычисляем SHA-1 хеш двумя кликами мыши:

Раз:

Добавляем вычисление SHA-1 и MD5 хешей в контекстное меню файлов / Хабр
Добавляем вычисление SHA-1 и MD5 хешей в контекстное меню файлов / Хабр

Всем добра и совпадающих хешей!

Для тех кто не любит терминал.

Можно установить расширение gtkhash для файлового менеджера и с помощью него производить все манипуляции.

Расширение есть для файловых менеджеров nautilus, nemo и thunar. Устанавливается через файловый менеджер Sinaptic.

После установки при выборе свойств файла появится вкладка в которой можно сравнить контрольную сумму или узнать ее.

:/>  Как вызвать командную строку в Windows 10 и не только

Как то так. В комментариях добавляйте кто знает о других способах или использует другие методы.

Всем Удачи!

Как проверить контрольную сумму файла в windows

У microsoft тоже есть своя утилита командной строки и называется она fciv.exe (File Checksum Integrity Verifier utility).

В Windows 10 появилась утилита командной строки CertUtil. Для проверки хеша с её помощью введите команду:

Как рассчитать контрольную сумму md5 файла

Ну, есть много способов сделать это. Одним из них является помощь сторонних инструментов проверки целостности файлов. Есть много инструментов, которые могут помочь вам вычислить контрольную сумму файла, используя алгоритмы MD5. Мы уже рассмотрели несколько инструментов, которые вы можете проверить здесь.

Если вы ищете альтернативу, не требующую загрузки какого-либо другого дополнительного инструмента, Windows Certutil может вам помочь. Certutil – это инструмент командной строки, встроенный в Windows.

Согласно Microsoft, вы можете использовать certutil.exe для получения и отображения информации о конфигурации центра сертификации (CA), настройки служб сертификации, резервного копирования и восстановления компонентов CA, а также проверки сертификатов, пар ключей и цепочек сертификатов.


В этом разделе мы рассмотрели пошаговое руководство по использованию Certutil для вычисления контрольной суммы любого файла.

Шаг 1. Откройте новое окно CMD в меню Пуск.

Шаг 2: Перейдите в каталог, где находится ваш файл.


Шаг 3: Запустите следующую команду:

 certutil -hashfile путь к вашему файлу MD5 

Это напечатает контрольную сумму файла в окне консоли. Вы можете использовать эту контрольную сумму для проверки целостности этого файла.

Как узнать контрольную сумму файла в windows

CheckISOmd5-logo.png

При закачке или переносе любого файла, особенно большого, всегда есть шанс, что он повредится. И самый простой способ узнать, цел ли файл — это сравнить его контрольную сумму у себя на компьютере и на ресурсе, откуда вы этот файл скачали. 

Для того, чтобы узнать контрольную сумму, введите в PowerShell команду Get-FileHash ПутьДоФайла -Algorithm Тип | Format-List . PowerShell поддерживает достаточно много алгоритмов — это SHA256, MD5, SHA1, SHA384, SHA512, MACTripleDES и RIPEMD160. 

К примеру, нужно узнать контрольную сумму по алгоритму MD5 текстового файла с именем 1.txt в корне диска C. Команда будет выглядеть как 

Get-FileHash C:1.txt -Algorithm MD5 | Format-List 

:

Снимок.PNG

Теперь, сверив свой MD5 с тем, что указан на сайте для файла, можно точно узнать, повредился ли он при закачке или нет.

Контрольная сумма файла есть – сверяем

Если вы пытаетесь проверить контрольную сумму, её можно узнать у “поставщика” файла. Обнаружить их нетрудно, ибо добросовестный хозяин особо на это укажет на сайте или вложит файл с информацией для сверки в архив.

:/>  Windows 10 online emulator demo now available for the undecided

Контрольная сумма файлов в linux.

Подсчет контрольных сумм в linux осуществляется при помощи терминала.

Для подсчета MD5 суммы файла или строки, в Linux можно воспользоваться программой: 

md5sum имя_файла 

Для проверки контрольной суммы sha1: 

sha1sum имя_файла

Для проверки контрольной суммы sha256: 

sha256sum имя_файла

Для проверки контрольной суммы sha384: 

sha384sum имя_файла

Для проверки контрольной суммы sha512: 

sha512sum имя_файла

Для проверки контрольной суммы CRC: 

cksum имя_файла

Все эти программы входят в пакет coreutils — который должен быть предварительно установлен, например с помощью менеджера пакетов Sinaptic.

Откуда её взять-то?

Составьте сами (если файл создаётся вами или готовится к пересылке/копированию) и сверьте с имеющимся/поставляемым. Если не стесняетесь, а для вас обладание файлом/программой очень важно, запросите контрольную сумму у поставщика. Для этого у нас есть все возможности: у самой Windows или несколько очень хороших, бесплатных и легковесных программ. О всех способах по порядку.

Подсчет контрольной суммы файлов в windows.

Для операционных систем windows существует множество программ которые подсчитывают контрольную сумму.

Самой распространенной программой считается программа HashTab.

Проверка контрольной суммы с помощью встроенной утилиты certutil

Рецептом поделился в комментариях читатель Салават. Утилита входит в состав Windows 7 и выше.

CertUtil -hashfile [путь к ISO]имя_файла.iso SHA1

Результат:

Утилита поддерживает хэш-алгоритмы MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512, любой из которых можно указать в качестве параметра. Подробная справка по команде:

certutil -hashfile -?

Проверка контрольной суммы с помощью программы hashtab

Если командная строка вас пугает, можно проверить контрольную сумму более простым путем.

  1. Загрузите и установите программу HashTab.
  2. Щелкните правой кнопкой мыши на файле образа и выберите пункт “Свойства”.
  3. Перейдите на вкладку “Контрольные суммы” (File Hashes).

Программы для работы с контрольными суммами в windows

Пробегусь бегло, ибо смысл вам понятен, а принцип работы у них примерно одинаков. Их больше, чем в моём списке, но вам и так хватит с избытком. А проверяю результаты с полученными от certutil.exe:

Успехов.

Работаете с другими алгоритмами?

Если вы хотите проверить контрольную сумму по другому алгоритму, такому как SHA512 или SHA256, все, что вам нужно сделать, это заменить MD5 в вашей команде желаемым алгоритмом.

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