Эта статья рассказывает, как узнать значение хеш суммы файла в Windows 10 и как это значение использовать.
Хеш сумма для файла определяется как результат выполнения хеш-функции (например, MD5 или SHA1) над содержимым файла и используется в качестве контрольной суммы, то есть для контроля целостности файла при его передаче и хранении.
Встроенные в Windows способы определения хеш суммы файла
Вычислить хэш сумму файла в Windows можно без установки дополнительных программ.
Программа certutil
Встроенная утилита CertUtil, имеет возможность вычисления хэш-суммы заданного файла, если запустить её с параметром -hashfile
:
CertUtil [Options] -hashfile InFile [HashAlgorithm]
Пример вычисления MD5 hash для файла putty-0.65-installer.exe:
C:\>certutil -hashfile putty-0.65-installer.exe MD5 MD5 хеш файла putty-0.65-installer.exe: a84d239584cca5c36dcd4faf49f9a877 CertUtil: -hashfile - команда успешно выполнена.
Шестнадцатеричное значение во второй строке (a84d239584cca5c36dcd4faf49f9a877) и есть хэш-сумма по алгоритму MD5.
Другие поддерживаемые значения HashAlgorithm:
MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
PowerShell
В PowerShell имеется команда Get-FileHash, предназначенная для получения хэш-суммы файла.
Команда для вывода хэш-значения по алгоритму MD5, непосредственно в среде PowerShell:
Get-FileHash putty-0.65-installer.exe -Algorithm MD5
Команда для вызова этой же функции из командной строки Windows:
powershell.exe -command Get-FileHash putty-0.65-installer.exe -Algorithm MD5
bat файлы для получения хэш-суммы
Для более удобного вывода информации можно сделать bat файлы, которые будут запускать те же certutil
или powershell
, но печатать только само значение хэш-суммы.
Командный файл certutil-md5.ba
t для запуска программы certutil.exe для указанного файла и алгоритма MD5:
@echo off
for /f "skip=1 usebackq tokens=1,2" %%a in (`certutil -hashfile %1 MD5`) do if "%%b"=="" echo %%a
Командный файл powershell-md5.bat
для подсчета хэш-суммы через powershell.exe:
@echo off
for /f "skip=3 usebackq tokens=1,2" %%a in (`powershell.exe Get-FileHash %1 -Algorithm MD5`) do if "%%a"=="MD5" echo %%b
Эти командные файлы имеют один параметр – имя файла для анализа:
certutil-md5.bat putty-0.65-installer.exe
powershell-md5.bat putty-0.65-installer.exe
Как использовать хэш-сумму файла
Проверка подлинности файла
Сравнивая вычисленное значение хеш-суммы с заранее известным правильным значением, можно узнать, оригинальный ли это файл.
Например, на страницах загрузки программ часто указывают значение хэш-суммы её файла. Если после скачивания какой-то программы вычисленное в certutil.exe значение хэш-суммы совпадает с правильным, то это оригинальный файл.
Сравнение файлов
Хэш-сумму можно использовать для сравнения файлов – одинаковые файлы будут иметь одинаковое значение хеш-суммы.
Если вопрос состоит в сравнение локальных файлов на одном компьютере, то можно использовать и встроенную команду FC.
А вот если нужно сравнить большие файлы на разных компьютерах, то использование хеш суммы будет быстрее – можно сравнить хеш-значения для этих файлов локально на каждом компьютере – вместо того, чтобы копировать файлы в какую-то общую папку на один компьютер и выполнять локальное сравнение..
Проверка на вирусы
Хэш-значение можно использовать на сайте VirusTotal для проверки файла без закачивания самого файла на сайт, если выбрать SEARCH и вставить хэш-значение – сайт покажет результаты тестирования по хэш-сумме (если кто-то протестировал этот файл ранее):
Совместимость
Программа CertUtil.exe включена в Windows, начиная с Windows Vista.
Файлы для скачивания
Командные файлы, описанные в статье, доступны для скачивания с Яндес.Диска:
Узнать больше
Справка по утилите certutil.exe на сайте Майкрософт
Альтернативное решение – бесплатная программа MD5SUMS.
Статьи на Википедии: Хеш-сумма, md5sum.