Хэш или контрольная сумма файла — короткое уникальное значение, вычисляемое из содержимого файла и обычно использующееся для проверки целостности и соответствия (совпадения) файлов при загрузке, особенно если речь идет о больших файлах (образы системы и подобные), которые могут быть скачены с ошибками или есть подозрения о том, что файл был подменен вредоносным ПО.
На сайтах загрузок часто бывает представлена контрольная сумма, вычисленная по алгоритмам 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 путь_к_файлу)
При скачивании ISO образов и архивов больших размеров всегда есть вероятность получить «битый» файл. Во времена Dial-UP такое было сплошь и рядом. И хотя сейчас такое случается намного реже, чтобы убедиться, что перед вами «оригинальный» файл придумали контрольные суммы, которые вычисляются на основе содержимого и позволяют заметить несоответствие даже одного байта.
То есть, если вы измените один байт в проверяемом файле, то и контрольная сумма такого файла так же изменится.
Для чего нужны контрольные суммы
У контрольных сумм две задачи:
- Убедиться, что файл скачался корректно.
- Убедиться, что файл не был изменен злоумышленниками.
Зная контрольную сумму оригинала, можно проверить является ли ваша копия подлинной.
Как вычислить контрольную сумму он-лайн
Контрольную сумму можно проверить он-лайн. Но я не буду рекомендовать этот способ, так как если размер вашего файла несколько ГигаБайт, то это займет много времени и всегда есть вероятность ошибки при передаче файла. Кроме того делиться своими файлами со сторонними сервисами не правильно.
Как узнать контрольную сумму файла в Windows
Разумнее вычислить контрольную сумму локально на своем компьютере. Это быстро и конфиденциально. В этой статье я опишу несколько способов получения контрольных сумм, как с помощью сторонних программ, так и непосредственно с помощью самой операционной системы Виндовс.
Файловый менеджер Total Commander
Total Commander — это популярный файловый менеджер, работающий на платформах Microsoft Windows и Android. В нем есть встроенная функция вычисления контрольных сумм.
После чего вы можете выбрать один из алгоритмом вычисления контрольных сумм.
По-умолчанию Total Commander создает файл с именем проверяемого и с расширением по имени выбранного алгоритма расчета контрольной суммы.
Файловый архиватор 7-Zip
7-Zip — свободный, бесплатный файловый архиватор с высокой степенью сжатия данных. Он поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.
Этот архиватор имеет встроенную функцию вычисления контрольных сумм. Запустить ее можно прямо из контекстного меню Windows:
Если выбрать «звездочку», то программа подсчитает сразу несколько контрольных сумм:
Полученные данные можно выделить и скопировать в текстовый документ.
Как подсчитать контрольную сумму файла из консоли Windows
Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.
Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:
certutil -hashfile путь_к_файлу алгоритм
Вот пример ее работы через несколько минут:
Считаем контрольную сумму в PowerShell
PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.
Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:
Get-FileHash "Disk:\Full Path to file\File Name.Extension" -Algorithm SHA1
Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.
По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.
Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:
- SHA1
- SHA256 (по умолчанию)
- SHA384
- SHA512
- MD5
Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:
Get-FileHash "Disk:\Full Path to file\File Name.Extension" | Format-List
Тогда результат работы будет выглядеть так:
Подробнее об использовании команды Get-FileHash можно прочитать на официальном сайте Microsoft — https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.utility/get-filehash
Какой алгоритм вычисления контрольных сумм самый правильный
MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.
MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.
Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.
Выводы
Если вы сомневаетесь в целостности скаченных файлов из интернета, особенно когда это касается оригинальных образов операционных систем, то проверьте их контрольную сумму. Сделать это можно как с помощью уже имеющихся у вас программ, так и воспользовавшись встроенными средствами операционной системы Windows.
Вычислить хеш-сумму файла в Windows 10 можно с помощью встроенной утилиты certutil с параметром -hashfile. Команда позволяет создать и отобразить криптографический хэш файла.
Синтаксис:
CertUtil [Параметры] -hashfile InFile [HashAlgorithm]
Справку по работе с хеш-суммами можно запросить командой:
certutil -hashfile -?
Хэш-алгоритмы:
- MD2
- MD4
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
Пример:
certutil -hashfile "C:\distrib\Windows10Upgrade24074.exe" MD5
Вывести только хэш:
certutil -hashfile "C:\distrib\Windows10Upgrade24074.exe" MD5 | findstr ^[0-9a-f]$
Хеш-суммы в контекстном меню Windows
Если лень возиться с командной строкой, можно добавить вычисление хеш-сумм в контекстное меню Windows.
Хеш-суммы в контекстном меню Windows (MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512)
Зажимаем Shift и кликаем правой кнопкой мыши на файл, результат выглядит так:
В контекстном меню появляется пункт «Хеш-сумма файла». При наведении отображается список поддерживаемых алгоритмов. Выбираем алгоритм, открывается командная строка с вычисленной хеш-суммой:
Windows, Windows 10, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP
- 01.02.2018
- 94 607
- 12
- 28.05.2020
- 104
- 100
- 4
- Содержание статьи
- Вариант через расширение для проводника
- Вариант через командную строку (без установки программ)
- Вариант через командную строку (с установкой программы)
- Комментарии к статье ( 12 шт )
- Добавить комментарий
В некоторых ситуациях, может быть необходимо, посчитать 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
— путь к файлу, для которого мы считаем хеш-сумму.
Для проверки целостности файлов, особенно тех, которые часто передаются по сети от пользователя к пользователю, часто применяется функция хеширования. При этом информация, то есть файл, с помощью особого алгоритма преобразуется в определенной длины строку, именуемую хешем или контрольной суммой. Как правило, хеш указывается в описании к скачиваемому контенту, реже он прилагается в отдельном текстовом файле.
Скачав файл, пользователь может вычислить его контрольную сумму и сравнить ее с оригинальным хешем, получив таким образом подтверждение, что файл не был поврежден или изменен. Для получения контрольной суммы файлов существуют специальные утилиты, но также для этих целей можно использовать консоль PowerShell в Windows 8.1 и 10. За преобразование содержимого файла в хеш-строку в PowerShell отвечает командлет Get-FileHash, позволяющий получать хеш с использованием алгоритмов SHA1, SHA256, SHA384, SHA512, MD5, MACTripleDES и RIPEMD160.
Давайте посмотрим, как выглядит его применение на практике. Допустим, вы хотите получит контрольную сумму некоего файла music.mp3. Откройте консоль PowerShell и выполните в нем команду такого вида:
Get-FileHash D:\music.mp3 | Format-List
Командлент Format-List указывать необязательно, он служит для форматирования полученных данных, вывода и в более читабельном виде. По умолчанию Get-FileHash всегда вычисляет хеш по алгоритму SHA256, если же вы хотите получить хеш, скажем, по MD5, после пути к файлу необходимо добавить параметр –Algorithm. Вот так:
Get-FileHash D:\music.mp3 -Algorithm MD5 | Format-List
То же самое касается всех прочих поддерживаемых алгоритмов хеширования. Если вы хотите сохранит вычисленную контрольную сумму, данные можно вывести в текстовый файл, добавив в конец командлет перенаправления в файл:
Get-FileHash D:\music.mp3 -Algorithm MD5 | Format-List | Out-File {путь к файлу}
В результате выполнения этой команды контрольная сумма, используемый алгоритм и путь к проверяемому файлу будут сохранены в текстовый файл по указанному адресу.
Загрузка…