Получить хеши файлов с помощью Windows PowerShell

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

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

В прошлом мы рассмотрели значительное количество программ, связанных с хэшированием: от расширения оболочки Windows HashTab до HashMyFiles от Nirsoft до File Check MD5 и MD5 Check Utility.

Получить хеши файлов с помощью Windows PowerShell

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

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

Генерация хэша была интегрирована в PowerShell 4.0. Он включен в Windows 8.1 и Windows Server 2012 R2, а также доступен для Windows 7 с пакетом обновления 1, Windows Server 2012 и Windows Server 2008 R2 с пакетом обновления 1.

  1. Нажмите на клавишу Windows, введите PowerShell и нажмите клавишу Enter, чтобы запустить ее.

Основная команда - это get-filehash FILEPATH, например, get-filehash c: \ test.txt .

Get-FileHash по умолчанию использует алгоритм Sha256. Вместо этого вы можете указать другой алгоритм, используя параметр -Algorithm.

Поддерживаются: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

Обратите внимание, что MD5 и SHA1 больше не считаются безопасными, но все еще поддерживаются.

Итак, для генерации хэша Sha512 вы должны использовать команду get-filehash -Algorithm Sha512 c: \ test.txt.

Вы также можете использовать -LiteralPath или -InputStream вместо опции пути по умолчанию.

  • LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Algorithm SHA512 Stream.

Основное различие между path и literalpath заключается в том, что literalpath не поддерживает подстановочные знаки и используется точно так, как он напечатан.

CertUtil

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

Базовая команда - это certutil -hashfile PATH, например, certutil -hashfile c: \ example.txt .

Вы также можете указать алгоритм хеширования. Поддерживаются MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. Алгоритм по умолчанию - MD5.

Чтобы использовать другой алгоритм хеширования, укажите его после команды, например, certutil -hashfile c: \ example.txt SHA512 .

Заключительные слова

Вы можете использовать команды в скриптах для вычисления хэшей для нескольких файлов за одну операцию. Два встроенных инструмента get-filehash и certutil очень удобны для быстрого вычисления хэшей в Windows, а также для использования скриптов. (через Genbeta (испанский))