Как проверить MD5 хеш-сумму файла в Windows

В некоторых ситуациях, может быть необходимо, посчитать MD5 хеш-сумму для файла, который вы скачали на свой компьютер. Например, чтобы быть уверенным в том, что вы скачали именно тот файл, который хотели и злоумышленник его не модифицировал. В этой статье мы рассмотрим 2 разных способа это сделать: через расширение для проводника, а также через командную строку.
Вариант через расширение для проводника
Для проводника Windows существует замечательная программа Hashtab, которая бесплатна для некоммерческого использования. Скачать ее можно с официального сайта. Выбираем бесплатную (Free) версию и жмем на кнопку «Download».
После установки программы, в контекстном меню проводника появится новая вкладка «Хеш-суммы файлов», выбрав которую, программа автоматически посчитает хеш-суммы для выбранного файла в зависимости от того, какие алгоритмы выбраны в ее настройках.

Вариант через командную строку (без установки программ)
В том случае, если вам не хочется устанавливать какие-либо программы, то можно обойтись встроенными средствами Windows, для этого можно воспользоваться утилитой CertUtil. Для проверки MD5 хеша, достаточно ввести следующую команду:
certutil -hashfile C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe MD5

C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe — это путь к тому файлу, хеш-сумму которого мы хотим посчитать. Как видно на скриншоте, хеш-сумма нашего файла 62130c3964. полностью идентична той, которую мы получили с помощью первого способа.
Вариант через командную строку (с установкой программы)
В случае, если необходимо посчитать хеш-сумму файла через командную строку, мы можем воспользоваться утилитой от Microsoft, которая годится как раз для таких случаев. Скачиваем ее с официального сайта Microsoft и устанавливаем. Для этого надо будет создать какую-либо папку на жестком диске и указать ее в процессе установки. В нашем примере, программа была установлена в папку C:\Program Files (x86)\FCIV. Для того, чтобы посчитать MD5 хеш-сумму файла, нам необходимо запусить командную строку и в ней набрать следующую команду:
"C:\Program Files (x86)\FCIV\fciv.exe" -md5 C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe

Как видите, MD5 хеш-сумма одинакова как для всех трех способов, которые рассмотрены в данной статье.
«C:\Program Files (x86)\FCIV\fciv.exe» — это путь к файлу fciv.exe
-md5 — указание алгоритма по которому fciv.exe будет считать хеш-сумму
C:\Users\Admin\Downloads\HashTab_v6.0.0.34_Setup.exe — путь к файлу, для которого мы считаем хеш-сумму.
Файл с расширением .md5

Файл MD5 содержит контрольную сумму, используемую для проверки целостности диска, образа диска, дистрибутива программы, отдельного файла и т.п. Контрольная сумма любого файла с данными представляет собой его уникальный «отпечаток» и генерируется определенным образом с помощью 128-битного алгоритма хеширования. MD5-хеши представлены в виде последовательности из 32 шестнадцатеричных цифр, например, 1BC31B78F452BA11AAF1832FD3B16281.
Редактирование исходного файла или внедрение в него вредоносного кода приводит к изменению MD5-хеша. При его сравнении с оригинальной контрольной суммой легко заметить, что файл был изменен. Это позволяет широко использовать MD5 для проверки подлинности дистрибутивов программ, а также файлов, загруженных из интернета и полученных по электронной почте. Определить контрольную сумму файла можно с помощью стандартных команд операционной системы, онлайн-сервисов или специализированных приложений, например, HashTab.
Как узнать хэш (контрольную сумму) файла в Windows

У каждого файла имеется свое собственное уникальное значение, которое может быть использовано для проверки файла. Это значение носит название хэш или контрольная сумма. Оно зачастую используется разработчиками программного обеспечения при обращении к файлам. По контрольной сумму проходит сверка файла с целью выявить его целостность и совпадение с заданным идентификатором.
Есть несколько алгоритмов вычислений контрольной суммы файла, среди которых наиболее известны и распространены MD5, SHA256, SHA1, SHA384. Вычислить хэш файла, то есть его контрольную сумму, можно как стандартными инструментами Windows, так и сторонними сервисами. В рамках данной статьи рассмотрим, как это сделать.
Оглавление: 1. Как узнать хэш файла через командную строку 2. Как узнать хэш файла через утилиту PowerShell 3. Как узнать хэш файла при помощи утилиты HashTab
Как узнать хэш файла через командную строку
Командная строка в Windows позволяет выполнять различные действия, как с самой системой, так и с отдельными файлами.Через нее можно определить контрольную сумму файлов при помощи встроенной утилиты CertUtil.
Чтобы через командную строку узнать хэш файла, достаточно запустить командную строку и ввести в командную строку следующий запрос:
certutil -hashfile *путь к файлу* *алгоритм*
Вместо *путь к файлу* нужно ввести полный путь к файлу. Например: d:\8.jpg
Вместо *алгоритм* нужно ввести название алгоритма, по которому нужно высчитать контрольную сумму. Утилита CertUtil умеет высчитывать контрольную сумму по алгоритмам: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512.
Выполнив указанную команду, можно будет увидеть хэш файла, вычисленный при помощи утилиты CertUtil.

Как узнать хэш файла через утилиту PowerShell
Еще одна встроенная в Windows утилита, которая способна определить контрольную сумму файла — это PowerShell. Она отличается от CertUtil поддержкой большего числа алгоритмов для вычисления контрольной суммы: SHA256, MD5, SHA384, SHA1, SHA512, MACTripleDES, RIPEMD160.
Для проверки хэша через утилиту PowerShell используется следующая команда:
Get-FileHash *путь к файлу* | Format-List
Вместо *путь к файлу* необходимо указать полный путь до файла, контрольная сумма которого проверяется.
Важно заметить, что по умолчанию утилита PowerShell ведет расчет контрольной суммы по алгоритму SHA256.

Если требуется использовать другой алгоритм, это нужно указать в команде при выполнении запроса. Например, чтобы определить хэш по алгоритму MD5 потребуется выполнить команду:
Get-FileHash *путь к файлу* -Algorithm MD5 | Format-List

Вместо MD5 можно указать другие поддерживаемые утилитой алгоритмы.
Как узнать хэш файла при помощи утилиты HashTab
Помимо инструментов Windows для определения контрольной суммы файла можно использовать сторонние приложения. Например, одной из удобных программ, способной определить хэш файла, является HashTab. Это крайне простое приложение, которое можно бесплатно скачать из интернета.
После загрузки программы HashTab и установки, в свойствах файлов создается новая вкладка, которая носит название “Хэш-суммы файлов”. В этом вкладке можно видеть расчет контрольной суммы для файла в различных алгоритмах.

Стоит отметить, что помимо отображения значений хэша, программа HashTab также умеет проводить сравнение файлов.
Для чего нужна контрольная сумма файла – алгоритмы расчета хэша
Контрольная сумма представляет собой последовательность цифр и букв, используемых для проверки данных на наличие ошибок. Если вы знаете контрольную сумму исходного файла, вы можете использовать служебную программу контрольной суммы, чтобы подтвердить, что ваша копия идентична.
Формирование контрольной суммы файла
Чтобы создать контрольную сумму, следует запустить специальную программу, которая вычислит её, используя соответствующий алгоритм. Типичные алгоритмы, используемые для этого, включают MD5, SHA-1, SHA-256 и SHA-512.

Алгоритм использует криптографическую хеш-функцию, которая принимает входные данные и создает строку (последовательность чисел и букв) фиксированной длины. Входной файл может быть небольшим, например, на 1 МБ, или массивным файлом размером 4 ГБ, но, в любом случае, вы получите контрольную сумму одной длины.
Небольшие изменения в файле дают очень разные контрольные суммы. Например, мы создали два разных текстовых файла, которые почти одинаковы, но второй имеет дополнительный восклицательный знак.
После запуска встроенной утилиты расчета контрольных сумм Windows 10 мы увидели очень разные контрольные суммы. Различие в одном знаке базового файла даёт совершенно другую контрольную сумму.

Когда контрольные суммы полезны
Вы можете использовать контрольные суммы для проверки файлов и других данных на наличие ошибок, возникающих во время передачи или хранения. Например, файл может быть неправильно загружен из-за сетевых проблем или проблемы с жестким диском могут привести к повреждению файла на диске.
Если вы знаете контрольную сумму исходного файла, вы можете запустить проверку с помощью хеширующей утилиты. Если итоговая контрольная сумма совпадает, вы будете знать, что файл идентичен исходному.
Компьютеры используют «метод контрольной суммы» для проверки данных в фоновом режиме, но вы также можете сделать это сами. Например, для дистрибутивов Linux часто указывают контрольные суммы, поэтому вы можете проверить корректность загрузки ISO-образа, прежде чем записывать его на диск или помещать на USB-накопитель. Вы также можете использовать контрольные суммы для проверки целостности любого другого типа файлов, от приложений до документов и носителей. Вам просто нужно знать контрольную сумму исходного файла.
В чем разница между MD5, SHA-1 и SHA-256
Контрольные суммы – это полезный способ убедиться, что файл не имеет ошибки. Если случайная ошибка возникает из-за проблем с загрузкой или проблем с жестким диском, итоговая контрольная сумма будет отличаться, даже если это всего лишь «одна небольшая ошибка».
Однако, эти криптографические хэш-функции не идеальны. Исследователи безопасности обнаружили «изъяны» в функциях MD5 и SHA-1. Они обнаружили два разных файла, которые дают один и тот же результат для хэша MD5 или SHA-1, но отличаются друг от друга.
Это вряд ли произойдёт случайно, но злоумышленник может использовать эту технику для маскировки вредоносного файла. Вот почему вы не стоит полагаться на суммы MD5 или SHA-1 при проверке аутентичности файла.
Пока ещё не было сообщений о компрометации SHA-256, поэтому приложения теперь создают суммы SHA-256 вместо сумм MD5 и сумм SHA-1. SHA-256 – более сильный, более безопасный алгоритм.

Различные алгоритмы контрольной суммы дают разные результаты. Файл будет иметь разные контрольные суммы MD5, SHA-1 и SHA-256. Если вы знаете только сумму MD5 исходного файла, вы должны вычислить хэш MD5 вашей копии, чтобы проверить, соответствует ли она оригиналу.
Как рассчитать контрольные суммы
Если вы знаете контрольную сумму исходного файла и хотите проверить его на своем ПК, – это сделать очень просто. Windows, macOS и Linux имеют встроенные утилиты для генерации контрольных сумм. Вам не нужны сторонние приложения.
В Windows команда Get-FileHash в PowerShell вычисляет контрольную сумму файла. Чтобы использовать её, сначала откройте PowerShell. В Windows 10 щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Windows PowerShell». Вы также можете запустить его, выполнив поиск в меню «Пуск» для «PowerShell» и щелкнув ярлык «Windows PowerShell».
В командной строке введите Get-FileHash, а затем нажмите клавишу пробела.
Введите путь к файлу, для которого вы хотите вычислить контрольную сумму. Или, чтобы упростить задачу, перетащите файл из окна Проводника в окно PowerShell, чтобы автоматически заполнить путь.

Нажмите Enter , чтобы запустить утилиту, и вы увидите хэш SHA-256 для файла. В зависимости от размера файла и скорости вашего компьютера, процесс может занять несколько секунд.
Если вам нужен другой тип контрольной суммы, добавьте соответствующий параметр -Algorithm в конец команды, например:
Get-FileHash C:\path\to\file.iso -Algorithm MD5
Get-FileHash C:\path\to\file.iso -Algorithm SHA1
Сравните вычисленную контрольную сумму с исходной. Вам не нужно сверять все цифры, так как в контрольной сумме будет значительная разница, даже если в базовом файле будет изменение только в одном символе.
Если контрольная сумма совпадает, – файлы идентичны. Если нет, есть проблема – возможно, файл поврежден, или вы просто сравниваете два разных файла. Если вы загрузили копию файла, и его контрольная сумма не соответствует ожидаемой, попробуйте загрузить файл снова.