Проверка хэш суммы powershell

Обновлено: 06.07.2024

У каждого файла имеется свое собственное уникальное значение, которое может быть использовано для проверки файла. Это значение носит название хэш или контрольная сумма. Оно зачастую используется разработчиками программного обеспечения при обращении к файлам. По контрольной сумму проходит сверка файла с целью выявить его целостность и совпадение с заданным идентификатором.

Есть несколько алгоритмов вычислений контрольной суммы файла, среди которых наиболее известны и распространены MD5, SHA256, SHA1, SHA384. Вычислить хэш файла, то есть его контрольную сумму, можно как стандартными инструментами Windows, так и сторонними сервисами. В рамках данной статьи рассмотрим, как это сделать.

Как узнать хэш файла через командную строку

Командная строка в Windows позволяет выполнять различные действия, как с самой системой, так и с отдельными файлами.Через нее можно определить контрольную сумму файлов при помощи встроенной утилиты CertUtil.

Чтобы через командную строку узнать хэш файла, достаточно запустить командную строку и ввести в командную строку следующий запрос:

Вместо *путь к файлу* нужно ввести полный путь к файлу. Например: d:\8.jpg

Вместо *алгоритм* нужно ввести название алгоритма, по которому нужно высчитать контрольную сумму. Утилита CertUtil умеет высчитывать контрольную сумму по алгоритмам: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512.

Выполнив указанную команду, можно будет увидеть хэш файла, вычисленный при помощи утилиты CertUtil.


Как узнать хэш файла через утилиту PowerShell

Еще одна встроенная в Windows утилита, которая способна определить контрольную сумму файла — это PowerShell. Она отличается от CertUtil поддержкой большего числа алгоритмов для вычисления контрольной суммы: SHA256, MD5, SHA384, SHA1, SHA512, MACTripleDES, RIPEMD160.

Для проверки хэша через утилиту PowerShell используется следующая команда:

Вместо *путь к файлу* необходимо указать полный путь до файла, контрольная сумма которого проверяется.

Важно заметить, что по умолчанию утилита PowerShell ведет расчет контрольной суммы по алгоритму SHA256.


Если требуется использовать другой алгоритм, это нужно указать в команде при выполнении запроса. Например, чтобы определить хэш по алгоритму MD5 потребуется выполнить команду:


Вместо MD5 можно указать другие поддерживаемые утилитой алгоритмы.

Как узнать хэш файла при помощи утилиты HashTab

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

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


Стоит отметить, что помимо отображения значений хэша, программа HashTab также умеет проводить сравнение файлов.

Как получить хэш файла в Windows

Хэш или контрольная сумма файла — короткое уникальное значение, вычисляемое из содержимого файла и обычно использующееся для проверки целостности и соответствия (совпадения) файлов при загрузке, особенно если речь идет о больших файлах (образы системы и подобные), которые могут быть скачены с ошибками или есть подозрения о том, что файл был подменен вредоносным ПО.

На сайтах загрузок часто бывает представлена контрольная сумма, вычисленная по алгоритмам 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):

Вычисление контрольной суммы sha256

При использовании команды в таком виде, хэш вычисляется по алгоритму SHA256, но поддерживаются и другие варианты, задать которые можно с помощью параметра -Algorithm, например, для вычисления контрольной суммы MD5 команда будет выглядеть как в примере ниже

Контрольная сумма MD5

При этом поддерживаются следующие значение для алгоритмов вычисления контрольной суммы в Windows PowerShell

  • SHA256 (по умолчанию)
  • MD5
  • SHA1
  • SHA384
  • SHA512
  • MACTripleDES
  • RIPEMD160

Получение хэша файла в командной строке с помощью CertUtil

Получение хэша файла в CertUtil

В Windows присутствует встроенная утилита CertUtil для работы с сертификатами, которая, помимо прочего, умеет высчитывать контрольную сумму файлов по алгоритмам:

  • MD2, MD4, MD5
  • SHA1, SHA256, SHA384, SHA512

Для использования утилиты достаточно запустить командную строку Windows 10, 8 или Windows 7 и ввести команду в формате:

Пример получения хэша MD5 для файла показан на скриншоте ниже.

Получение контрольной суммы MD5 в CertUtil

Дополнительно: на случай, если вам требуются сторонние программы для вычисления хэшей файлов в Windows, можно обратить внимание на SlavaSoft HashCalc.

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

Скачав файл, пользователь может вычислить его контрольную сумму и сравнить ее с оригинальным хешем, получив таким образом подтверждение, что файл не был поврежден или изменен. Для получения контрольной суммы файлов существуют специальные утилиты, но также для этих целей можно использовать консоль PowerShell в Windows 8.1 и 10. За преобразование содержимого файла в хеш-строку в PowerShell отвечает командлет Get-FileHash, позволяющий получать хеш с использованием алгоритмов SHA1 , SHA256 , SHA384 , SHA512 , MD5 , MACTripleDES и RIPEMD160 .

Давайте посмотрим, как выглядит его применение на практике. Допустим, вы хотите получит контрольную сумму некоего файла music.mp3 . Откройте консоль PowerShell и выполните в нем команду такого вида:

Get-FileHash

Командлент Format-List указывать необязательно, он служит для форматирования полученных данных, вывода и в более читабельном виде. По умолчанию Get-FileHash всегда вычисляет хеш по алгоритму SHA256 , если же вы хотите получить хеш, скажем, по MD5 , после пути к файлу необходимо добавить параметр –Algorithm. Вот так:

Algorithm

То же самое касается всех прочих поддерживаемых алгоритмов хеширования. Если вы хотите сохранит вычисленную контрольную сумму, данные можно вывести в текстовый файл, добавив в конец командлет перенаправления в файл:

Out-File

В результате выполнения этой команды контрольная сумма, используемый алгоритм и путь к проверяемому файлу будут сохранены в текстовый файл по указанному адресу.

То есть, если вы измените один байт в проверяемом файле, то и контрольная сумма такого файла так же изменится.

Для чего нужны контрольные суммы

У контрольных сумм две задачи:

  1. Убедиться, что файл скачался корректно.
  2. Убедиться, что файл не был изменен злоумышленниками.

Зная контрольную сумму оригинала, можно проверить является ли ваша копия подлинной.

Как вычислить контрольную сумму он-лайн

Контрольную сумму можно проверить он-лайн. Но я не буду рекомендовать этот способ, так как если размер вашего файла несколько ГигаБайт, то это займет много времени и всегда есть вероятность ошибки при передаче файла. Кроме того делиться своими файлами со сторонними сервисами не правильно.

Как узнать контрольную сумму файла в Windows

Разумнее вычислить контрольную сумму локально на своем компьютере. Это быстро и конфиденциально. В этой статье я опишу несколько способов получения контрольных сумм, как с помощью сторонних программ, так и непосредственно с помощью самой операционной системы Виндовс.

Файловый менеджер Total Commander

Total Commander — это популярный файловый менеджер, работающий на платформах Microsoft Windows и Android. В нем есть встроенная функция вычисления контрольных сумм.

Как узнать контрольную сумму файла в Windows

После чего вы можете выбрать один из алгоритмом вычисления контрольных сумм.

Как узнать контрольную сумму файла в Windows

По-умолчанию Total Commander создает файл с именем проверяемого и с расширением по имени выбранного алгоритма расчета контрольной суммы.

Файловый архиватор 7-Zip

7-Zip — свободный, бесплатный файловый архиватор с высокой степенью сжатия данных. Он поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.

Этот архиватор имеет встроенную функцию вычисления контрольных сумм. Запустить ее можно прямо из контекстного меню Windows:

Как узнать контрольную сумму файла в Windows

Как узнать контрольную сумму файла в Windows

Полученные данные можно выделить и скопировать в текстовый документ.

Как подсчитать контрольную сумму файла из консоли Windows

Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.

Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:

Вот пример ее работы через несколько минут:

Как узнать контрольную сумму файла в Windows

Считаем контрольную сумму в PowerShell

PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.

Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:

Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.

Как узнать контрольную сумму файла в Windows

По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.

Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:

  • SHA1
  • SHA256 (по умолчанию)
  • SHA384
  • SHA512
  • MD5

Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:

Тогда результат работы будет выглядеть так:

Как узнать контрольную сумму файла в Windows

Какой алгоритм вычисления контрольных сумм самый правильный

MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.

MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.

Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.

Выводы

Если вы сомневаетесь в целостности скаченных файлов из интернета, особенно когда это касается оригинальных образов операционных систем, то проверьте их контрольную сумму. Сделать это можно как с помощью уже имеющихся у вас программ, так и воспользовавшись встроенными средствами операционной системы Windows.

Читайте также: