Проверка контрольной суммы скачанного файла позволяет проверить его целостность и убедиться, что содержимое файла не было изменено. Чаще всего администраторы используют процедуру проверки чексуммы для загруженных дистрибутивов ОС и установочных образов ПО.
Идея контрольной суммы заключается в том, что для оригинального файла выполняется расчет некоего значения (хэша) по определенному алгоритму получения хэш-функции (чаще всего это MD5, SHA1 и SHA256), а пользователи потом могут выполнить такую же проверку для файла, который они скачали. Сравнение этих двух значений хэшей позволяет убедиться, что вы получили не модифицированный оригинальный файл. Если хэши файлов отличаются, значит файл был изменен или поврежден.
Для проверки контрольной суммы файла в Windows можно использовать встроенный PowerShell командлет Get-FileHash или утилиту certutil.
Например, чтобы получить значение хэша ISO образа, выполните команду:
Get-FileHash "F:\ISO\en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso"
Черех некоторое время (расчет может занять некоторое время в зависимости от размера файла), командлет вернет контрольную сумму файла по алгоритму SHA-256 (по умолчанию). С помощью атрибута
-Algorithm
можно задать другой алгоритм вычисления контрольной суммы
-
SHA1
-
SHA256
(по умолчанию) – наиболее популярный алгоритм с наименьшей вероятности возникновения коллизий (когда два разных файла имеют одинаковую контрольную сумму) -
SHA384
-
SHA512
-
MD5
– самый быстрый, но устаревший алгоритм хэширования
Аналогично можно получить хэш сумму файла с помощью certutil.exe:
certutil -hashfile F:\ISO\en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso SHA256
Где получить контрольные суммы оригинальных ISO файлов образов Windows?
Если у вас есть учетная запись Microsoft, вы можете найти контрольную сумму интересующего вас дистрибутива на сайте https://my.visualstudio.com/Downloads/. Для этого не обязательно иметь активную подписку MSDN. Информация о контрольной сумме образа доступна на вкладке с информацией о продукте.
Также список всех оригинальных образов от Microsoft и их хэшей доступен в следующей сторонней онлайн базе https://files.rg-adguard.net/search. В отличии от сайта Microsoft, здесь можно искать сразу по значению хэша. Выполните поиск по полученному хэшу, чтобы убедиться, что вы скачали оригинальный файл образа.
Регистр символов в хэш сумме не имеет значения.
Для автоматизации проверки хэш сумму скачанного образа с оригинальным значением, можно использовать такой однострочник PowerShell:
((get-filehash .\ en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso).hash) -eq "c90a6df8997bf49e56b9673982f3e80745058723a707aef8f22998ae6479597d"
Команда вернет
True
, если контрольная сумма файла совпадает с эталонной.
Хэш или контрольная сумма файла — короткое уникальное значение, вычисляемое из содержимого файла и обычно использующееся для проверки целостности и соответствия (совпадения) файлов при загрузке, особенно если речь идет о больших файлах (образы системы и подобные), которые могут быть скачены с ошибками или есть подозрения о том, что файл был подменен вредоносным ПО.
На сайтах загрузок часто бывает представлена контрольная сумма, вычисленная по алгоритмам MD5, SHA256 и другим, позволяющая сверить загруженный файл с файлом, выложенным разработчиком. Для вычисления контрольных сумм файлов можно использовать сторонние программы, но есть способ сделать это и стандартными средствами Windows 10, 8 и Windows 7 (требуется версия PowerShell 4.0 и выше) — с помощью PowerShell или командной строки, что и будет продемонстрировано в инструкции.
Получение контрольной суммы файла средствами Windows
Для начала потребуется запустить Windows PowerShell: проще всего использовать поиск в панели задач Windows 10 или меню Пуск Windows 7 для этого.
Команда, позволяющая вычислить хэш для файла в PowerShell — Get-FileHash, а чтобы использовать ее для вычисления контрольной суммы достаточно ввести ее со следующими параметрами (в примере вычисляется хэш для образа ISO Windows 10 из папки VM на диске C):
Get-FileHash C:\VM\Win10_1607_Russian_x64.iso| Format-List
При использовании команды в таком виде, хэш вычисляется по алгоритму SHA256, но поддерживаются и другие варианты, задать которые можно с помощью параметра -Algorithm, например, для вычисления контрольной суммы MD5 команда будет выглядеть как в примере ниже
Get-FileHash C:\VM\Win10_1607_Russian_x64.iso -Algorithm MD5 | Format-List
При этом поддерживаются следующие значение для алгоритмов вычисления контрольной суммы в Windows PowerShell
- SHA256 (по умолчанию)
- MD5
- SHA1
- SHA384
- SHA512
- MACTripleDES
- RIPEMD160
Подробное описание синтаксиса команды Get-FileHash доступно также на официальном сайте https://technet.microsoft.com/en-us/library/dn520872(v=wps.650).aspx
Получение хэша файла в командной строке с помощью CertUtil
В Windows присутствует встроенная утилита CertUtil для работы с сертификатами, которая, помимо прочего, умеет высчитывать контрольную сумму файлов по алгоритмам:
- MD2, MD4, MD5
- SHA1, SHA256, SHA384, SHA512
Для использования утилиты достаточно запустить командную строку Windows 10, 8 или Windows 7 и ввести команду в формате:
certutil -hashfile путь_к_файлу алгоритм
Пример получения хэша MD5 для файла показан на скриншоте ниже.
Дополнительно: на случай, если вам требуются сторонние программы для вычисления хэшей файлов в Windows, можно обратить внимание на SlavaSoft HashCalc.
Если же требуется вычислить контрольную сумму в Windows XP или в Windows 7 без PowerShell 4 (и возможности его установить), вы можете использовать утилиту командной строки Microsoft File Checksum Integrity Verifier, доступную для загрузки на официальном сайте https://www.microsoft.com/en-us/download/details.aspx?id=11533 (формат команды для использования утилиты: fciv.exe путь_к_файлу — результат будет MD5. Также можно вычислить хэш SHA1: fciv.exe -sha1 путь_к_файлу)
Итак, вы долго и упорно загружали образ Windows, а теперь хотите убедиться, что по дороге не потерялось ни байта. Или дистрибутив вам принесла добрая фея, и вы хотите проверить, не связана ли она с пиратами. Для определения целостности дистрибутива вам понадобятся две вещи – контрольная сумма и программа для ее проверки.
В 2017 году Microsoft перенесла загрузки с MSDN на новый сайт https://my.visualstudio.com/downloads, где долгое время было невозможно посмотреть контрольную суммы дистрибутива без подписки. Приходилось пользоваться поиском на сайте https://msdn.rg-adguard.net/. Но все-таки это не первоисточник.
Однако в какой-то момент вернули возможность просмотра контрольных сумм на сайте https://my.visualstudio.com/downloads после входа с учетной записью Microsoft.
/blog/wp-content/uploads/windows-checksum.mp4
Это – половина дела.
certutil
Утилита входит в состав Windows 7 и новее.
certutil -hashfile [путь к ISO]\имя_файла.iso SHA1
Результат:
Утилита поддерживает хэш-алгоритмы MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512, любой из которых можно указать в качестве параметра. Подробная справка по команде:
certutil -hashfile -?
File Checksum Integrity Verifier (fciv)
У Microsoft была собственная утилита командной строки для вычисления и проверки контрольной суммы файлов — File Checksum Integrity Verifier (fciv.exe). Она никогда официально не поддерживалось, но ее можно было загрузить из KB841290 (ныне удалена). Здесь она по прямой ссылке (41 кб). Далее я предполагаю, что вы знаете, куда распакована утилита, и где сохранен ISO-образ Windows.
Достаточно выполнить одну команду в командной строке (Пуск — Поиск — cmd):
<путь к утилите>\fciv.exe –sha1 <путь к ISO>\имя_файла.iso
Например, если утилита на рабочем столе, а ISO-образ в корне диска D, команда будет выглядеть так:
%userprofile%\desktop\fciv.exe –sha1 D:\en_windows_7_ultimate_x86_dvd_x15-65921.iso
А результат – контрольная сумма файла:
Увеличить рисунок
Если не указывать параметр -sha1
, утилита вычислит хеш MD5.
Как видите, все очень просто! Вы можете использовать этот способ для проверки контрольных сумм MD5 или SHA1 любых файлов.
Бонус: PsFCIV — модуль PowerShell для проверки целостности файлов на больших файловых ресурсах.
HashTab
Если командная строка вас пугает, можно проверить контрольную сумму более простым путем.
- Загрузите и установите программу HashTab.
- Щелкните правой кнопкой мыши на файле образа и выберите пункт «Свойства».
- Перейдите на вкладку «Контрольные суммы» (File Hashes).
Содержание статьи:
- Узнаем контрольную сумму
- Способ 1
- Способ 2
- Способ 3
- Способ 4
- Способ 5
- Вопросы и ответы: 0
Вводная (зачем это нужно): когда вы скачиваете из сети какую-нибудь программу, архив, образ ISO (особенно больших размеров) — есть определенная вероятность, что у вас может оказаться битый файл (или поддельный, т.е. кем-то измененный, например, вирусами).
Чтобы убедиться, что перед вами оригинальный файл (а не подделка) — нужно сравнить контрольные суммы* своего файла на диске, с контрольными суммами файла на сайте его разработчика (они их обычно всегда приводят). Если совпадут — значит все OK!
* Важный момент: контр. сумма (или хэш-сумма) представляет из себя текстовую строку с буквами и цифрами, которая уникальна для каждого файла (как подпись у человека). И если содержимое файла изменится хоть на один байт — контрольная сумма тоже изменится! Разумеется, если хэш-сумма вашего файла не совпадает с оригиналом — лучше его не открывать, и перезагрузить информацию…
*
Узнаем контрольную сумму
Способ 1
Пожалуй, наиболее быстрый и удобный способ — воспользоваться программой Total Commander (ссылка на сайт разработчика: https://www.ghisler.com/download.htm). Это аналог проводника, который сильно упрощает взаимодействие с большим кол-вом файлов.
Что делать:
- скачивание, установка, запуск у Total Commander стандартны, и поэтому я их не рассматриваю;
- далее в панели нужно выбрать тот файл, для которого вам требуется контрольная сумма, и перейти в меню «Файл — посчитать CRC суммы». См. скриншот ниже; 👇
Файл — посчитать CRC суммы
- затем указать тип контрольной суммы: MD5, SHA256, SHA1 и др. (обычно выбирают тот тип, который указан на сайте, с которого вы загрузили файл. Иначе как сравнивать-то? 😉);
Тип контрольной суммы
- после этого у вас в этой же папке с файлом появится новый текстовый файл (в моем случае с расширением MD5). Необходимо открыть его: для этого нужно его выбрать и нажать F3 (на ноутбуках возможно Fn+F3);
Открываем полученный текстовый файл
- ву-а-ля, перед вами контрольная сумма! Эту строку теперь можно скопировать и сравнить со строкой от разработчиков вашего файла: если совпадает — значит ваш файл никто не изменил… (не подделка…).
Напротив каждого файла своя контр. сумма
*
Способ 2
Если вы достаточно часто что-то качаете и загружаете (и нужно постоянно проверять хеш-суммы) — возможно, вам придется по душе дополнение для проводника HashTab V 6.0 (ссылка на сайт разработчика).
После его установки — достаточно просто открыть свойства нужного файла и перейти во вкладку «Хеш-суммы файлов». В ней будут представлены следующие типы контр. сумм: CRC32, MD5, SHA-1, SHA-256 (в настройках можно добавить и другие).
Удобно?! 👌👇👇
Свойства файла
Хеш-суммы файлов
*
Способ 3
Есть еще одна достаточно удобная утилита для подсчета хеш-сумм — File Checksum Calculator (сайт разрабочтика: https://vovsoft.com/software/file-checksum-calculator/).
После запуска File Checksum Calculator — нужно-то лишь указать расположение файла: через 1-2 сек. вы получите всё необходимое (строки CRC32, MD5, SHA1, SHA256, SHA512)! См. скрин ниже. 👇
File Checksum Calculator — скрин окна приложения
*
Способ 4
Если вы пользуетесь архиватором 7ZIP (ссылка на офиц. сайт: https://www.7-zip.org/) — то достаточно просто узнать хэш-суммы в нем:
- для этого нужно открыть сам архиватор (через ярлык в меню ПУСК, например);
- выбрать в нем файл и перейти в меню «Файл / CRC / *» (см. стрелку 3 на скрине ниже);
7ZIP — файл — CRC
- архиватор тут же представит неск. типов контрольных сумм (CRC32, 64, SHA256, SHA1 и др.). Задача выполнена?!
7zip — контрольные суммы
*
Способ 5
Можно также воспользоваться встроенной в Windows утилитой CertUtil (для этого понадобиться 📌запустить командную строку, ввести в нее нижеприведенную команду и нажать Enter).
certutil -hashfile C:\Users\alex\Downloads\FileZilla_3.66.5_win64-setup.exe MD5
Обращаю внимание на то, что:
- вместо моего пути к программе (C:\Users\alex\Downloads\FileZilla_3.66.5_win64-setup.exe) — вам нужно указать свой путь!
- вместо MD5 — можно указать другой тип контр. суммы (SHA1 или SHA256, например).
Командная строка — хэш-сумма // в качестве примера
✏️ Кстати!
Чтобы узнать имя и расположение своего файла — нажмите по нему правой кнопкой мыши и откройте его свойства: во вкладке «Общие» эти сведения указаны (см. скрин ниже). 👇
Свойства файла — имя и расположение
*
Иные (более простые) способы — приветствуются в комментариях ниже.
Всего доброго!
👋
Downloading a file used to be a risk. It can still be risky and you might still end up with malware on your system but there are more robust protections in place now. Both your browser and your OS scan items to make sure they’re safe to run. Another way to make sure you’ve downloaded a safe file is to check the checksum of a file.
Checksum values
No two people can have the same fingerprints. Similarly, no two files can ever have the same checksum values. If a file has been modified, its checksum value will be different from what it was before the modification was made.
When you check the checksum value of a file, you first need to know what its original value was. Normally, developers who are distributing software will provide it themselves on the download page for their product. Checksum is applied using MD5 or SHA. Some developers will generate Checksum values from both so that you can check whichever you want.
Check checksum value
Microsoft provides a tool called File Checksum Integrity Verifier utility that you can use to check the checksum value of a file.
Download and extract it. You will have to use it from the Command Prompt. Open Command Prompt and use the cd command to move to the folder you extracted the tool to.
Move the file that you want to check the checksum value for to the same directory as the one you extracted the File Checksum Integrity Verifier utility to and then run the following command to run the check.
Syntax
fciv.exe -both filename
Example
fciv.exe -both ReIcon_x64.exe
This will display both the MD5 and SHA checksum values. You can manually compare them, use a spreadsheet tool, or a simple difference checking tool.
Checksum does not match
In the event that the file you downloaded and ran the check for generates a different checksum than the one the developer provided, you might be dealing with a malicious or corrupt file.
If the file is corrupt, it’s likely because it didn’t download correctly. Try downloading it again. If the problem persists, it is entirely possible that the file that is available has been modified in which case, you should not use/run it. A mismatch in checksum value may also indicate a file that has been modified. This tends to happen with free or open-source apps that people try to re-distribute. They add in additional code that is meant to harm your system and bundle it into a trusted app.
The only way to stay safe is to always download apps from their official sources.
Fatima Wahab
Fatima has been writing for AddictiveTips for six years. She began as a junior writer and has been working as the Editor in Chief since 2014.
Fatima gets an adrenaline rush from figuring out how technology works, and how to manipulate it. A well-designed app, something that solves a common everyday problem and looks