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

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

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

В прошлом мы рассмотрели значительное количество программ, связанных с хешированием: Расширение оболочки Windows HashTab, над HashMyFiles от Nirsoft к Проверка файла MD5 а также Утилита проверки MD5.

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

Get-hash в 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 , например получить-filehash c: \ test.txt .

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

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

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

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

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

  • LiteralPath: get-filehash -LiteralPath -Алгоритм SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Algorithm SHA512 Stream.

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

CertUtil

Certutil

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

Базовая команда certutil -hashfile ПУТЬ , например certutil -hashfile c: \ example.txt .

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

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

Вывод

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