Вы когда-нибудь загружали файл, чтобы обнаружить, что файл поврежден или изменен? Лучший способ подтвердить целостность файла – это проверить его контрольную сумму или хэш. К счастью, есть несколько способов проверить контрольную сумму файла в Windows.
Читайте дальше, потому что вы узнаете несколько способов вычисления контрольной суммы файла в Windows совершенно бесплатно! Узнайте, как использовать встроенные инструменты Windows и сторонние утилиты для генерации контрольного значения файла.
В этой статье вы узнаете, как создать контрольную сумму в Windows с помощью пяти различных инструментов. В конце вы обязательно должны знать, как создавать хэши в Windows!
Предварительные требования
Поскольку это пошаговая статья, вы будете изучать, делая. Некоторые инструменты, использованные в этой статье, встроены или предоставлены компанией Microsoft; некоторые также поставляются сторонними источниками. Чтобы следовать инструкциям, убедитесь, что у вас есть компьютер с установленной Windows 10 или как минимум Windows Server 2012.
Предварительные требования для каждого метода генерации контрольных сумм будут предоставлены по мере необходимости.
Утилита проверки целостности контрольной суммы файла (FCIV)
Утилита проверки целостности контрольной суммы файла (FCIV) Microsoft была впервые представлена в Windows Server 2012 R2 и доступна для всех последующих версий.
Предположим, что вы установили инструмент FCIV в C:\Tools\fciv.exe. Запустите следующую команду в командной строке или PowerShell, чтобы сгенерировать контрольную сумму MD5 файла VSCodeUserSetup-x64-1.52.1.exe. Если ваш файл находится в другом месте, измените путь соответствующим образом.
После выполнения команды FCIV вы увидите аналогичный результат, как показано на скриншоте ниже. Как видите, команда fciv.exe
по умолчанию сгенерировала хэш MD5 для указанного файла.

fciv.exe
.FCIV может генерировать только хэши файлов MD5 или SHA-1.
Теперь, когда вы вычислили контрольную сумму MD5, почему бы не сгенерировать также контрольную сумму файла SHA-1? Чтобы создать контрольную сумму SHA-1 того же файла, что использовался в приведенном выше примере, добавьте в конец существующей команды опцию sha1
. Как показано на скриншоте ниже, для того же файла сгенерирован хэш SHA-1.

fciv.exe
.Отличная работа! Вы создали как значение контрольной суммы MD5, так и SHA-1. Почему бы не сгенерировать и оба значения хэшей MD5 и SHA-1 одновременно? Вместо использования опции sha1
, используйте both
.
Полученные значения хэшей помечены как MD5 и SHA-1. Использование параметра both
экономит время, когда вам нужно сгенерировать как значения хэшей MD5, так и SHA-1.

fciv.exe
.Хотя FCIV – удобный инструмент для вычисления хэшей файлов, он устарел, и алгоритмы хэширования ограничены MD5 и SHA-1. Компания Microsoft официально объявила, что FCIV – это не поддерживаемый командный инструмент . Тем не менее, в отсутствие других инструментов FCIV все еще может служить отличной альтернативой.
На данном этапе вы создали значения хеша MD5 и SHA-1 с использованием инструмента fciv.exe
. Что вы думаете на этот счет? Я знаю, что вы готовы перейти к изучению следующего инструмента.
Использование Certutil
Certutil – еще один отличный инструмент для генерации контрольных сумм файлов в Windows. Точное имя программы – certutil.exe
, которая доступна из коробки.
Основная цель certutil.exe
– работа с сертификатами. Однако certutil.exe
имеет функцию для создания контрольных сумм файлов в Windows с использованием следующих хеш-алгоритмов:
- MD2
- MD4
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
Давайте посмотрим, как это работает.
Запустите PowerShell или командную строку, чтобы начать вычисление контрольных сумм файлов, используя показанный ниже синтаксис.
В приведенном ниже примере certutil.exe
генерирует хеш SHA-256 файла C:\downloads\VSCodeUserSetup-x64-1.52.1.exe, как показано на скриншоте результата.

certutil.exe
to create a file checksum.Теперь вы знаете, как использовать certutil.exe
для создания контрольной суммы файла. Для практики попробуйте сгенерировать значение хеша файла, используя все доступные алгоритмы. Читайте дальше, чтобы узнать, как использовать Get-FileHash
и PowerShell для создания хеша файла!
Вы знали, что хэширование, например, алгоритм SHA-256, также используется при создании сертификатов SSL?
Использование командлета PowerShell Get-FileHash
Вы уже читали и использовали инструменты командной строки для создания контрольных сумм файлов в Windows с самого начала этой статьи. Еще один инструмент командной строки, который вы узнаете, – это командлет Get-FileHash
PowerShell.
Перед использованием Get-FileHash
обратитесь к синтаксису ниже, чтобы ознакомиться с доступными параметрами. Используйте параметр Path
, чтобы указать целевой файл, и параметр Algorithm
, чтобы указать, какой алгоритм хеширования использовать.
Доступные алгоритмы хеширования для Get-FileHash
перечислены ниже. Заметьте, что выбор алгоритмов хеширования отличается от того, что предлагают FCIV и CertUtil. Кроме того, более старые и уязвимые алгоритмы, такие как MD1 и MD4, больше не включены.
- SHA1
- SHA256
- SHA384
- SHA512
- MACTripleDES
- MD5
- RIPEMD160
Команда ниже вычисляет хэш-значение файла VSCodeUserSetup-x64-1.52.1.exe с использованием алгоритма SHA-256. Скопируйте и выполните код ниже в PowerShell для тестирования, обязательно измените путь к файлу при необходимости.
Как вы можете видеть на скриншоте ниже, команда Get-FileHash
вычисляет хэш-значение файла в соответствии с заданным алгоритмом SHA-256 с помощью параметра -Algorithm sha256
.

Get-FileHash
to compute the SHA-256 checksum of a file.Если вы хотите вычислить контрольную сумму файла с использованием других алгоритмов, вам просто нужно изменить значение параметра Algorithm
. Думаете, вы сможете теперь создать контрольную сумму SHA-512 файла с помощью Get-FileHash
? Я уверен, что сможете!
Генерация Хэшей Для Нескольких Файлов Одновременно
С помощью Get-FileHash
можно генерировать контрольную сумму нескольких файлов одновременно. Приведенный ниже примерный код сохраняет список путей к файлам в переменной $files
. Затем Get-FileHash
использует переменную $files
для вычисления контрольной суммы SHA-256 для каждого файла, как показано на скриншоте ниже.

Get-FileHash
to compute the hash values for each file stored in the $files
array.Что если вам нужно сгенерировать хэш для папки с множеством файлов? Вместо ручного создания массива $files
используйте cmdlet Get-ChildItem
, чтобы получить список файлов в указанной папке.
В приведенной ниже команде cmdlet Get-ChildItem
извлекает список файлов внутри папки c:\downloads. Результат затем передается через PowerShell pipeline в cmdlet Get-FileHash
, который в свою очередь вычисляет хэш-значение SHA-256 для каждого файла.
Время, необходимое для создания контрольной суммы, может различаться в зависимости от размера файла. В этом примере на вычисление контрольной суммы файла ISO размером 8 ГБ ушло примерно двадцать секунд. Результат должен выглядеть примерно так, как на скриншоте ниже.

Get-ChildItem
and Get-FileHash
to compute the hash values for each file in a folder.Использование сторонних инструментов для создания контрольных сумм файлов в Windows
Если по какой-то причине встроенных средств для генерации контрольных сумм файлов в Windows недостаточно, существуют сторонние инструменты. Не все из них бесплатны, но ниже приведены несколько бесплатных и популярных утилит.
7-Zip
Устали от использования командной строки и ищете графический инструмент для создания контрольной суммы файла в Windows? 7-zip – популярный и бесплатный инструмент для сжатия файлов, способный генерировать хэш-значение файла.
Установка 7-zip на ваш компьютер автоматически добавляет опцию контекстного меню для создания контрольной суммы файла. Чтобы получить хэш-значение файла, выполните следующие действия:
- Щелкните правой кнопкой мыши по файлу для генерации контрольной суммы.
- Выберите опцию меню CRC SHA, чтобы отобразить доступные алгоритмы хэширования.
- Наконец, щелкните по выбранному алгоритму хэширования.
В приведенном ниже примере опция звездочки (*) отображает хэш-значение файла, используя все доступные алгоритмы. Не так ли просто?

Далее узнайте, как использовать инструмент HashMyFiles для генерации контрольных сумм нескольких файлов в качестве альтернативы 7-Zip!
HashMyFiles
Забудьте о командной строке и правом клике. HashMyFiles может создавать контрольные суммы или хэши одного файла, нескольких файлов или целых каталогов с помощью перетаскивания.
Запустите программу HashMyFiles и перетащите файлы или папки, для которых необходимо сгенерировать хэш, в основное окно HashMyFiles. Как показано ниже, основное окно отображает файлы и соответствующие им хэши в виде таблицы, а дополнительная информация доступна в окне свойств.

Более того, HashMyFiles может экспортировать значения хэша или контрольной суммы в HTML-отчет или файл с разделителями-табуляциями. Эта функция экспорта полезна, когда вам необходимо сохранить запись значений контрольной суммы файла.
Следующие шаги
В этой статье вы узнали, что существует несколько способов создания контрольной суммы файла в Windows. У Microsoft есть встроенные инструменты командной строки, такие как certutil.exe
и Get-FileHash
.
Есть также сторонние инструменты, которые бесплатны и относительно просты в использовании. Какой бы инструмент вы ни выбрали для генерации значений хэша файла, концепция и результат одинаковы для каждого алгоритма хэширования.
Что дальше для вас? Возможно, стоит проверить свои навыки написания сценариев и создать инвентарь контрольных сумм важных файлов с использованием любого из инструментов, о которых вы узнали в этой статье.