Отримати хеші файлів за допомогою Windows PowerShell

Отримання хешів файлів може бути дуже корисним. Це можна використовувати, наприклад, щоб переконатися, що резервні файли не пошкоджені чи змінені (генеруючи хеші до та після процесу), або щоб переконатися, що ніхто не підробляє важливий файл.

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

Ми розглянули значну кількість програм, що стосуються хешування, у минулому: від розширення оболонки Windows HashTab, через HashMyFiles Nirsoft до утиліти перевірки файлів MD5 та MD5.

Отримати хеші файлів за допомогою Windows PowerShell

Якщо вам потрібно швидко генерувати хеш файлу на машині Windows, ви можете також використовувати для цього PowerShell.

Це може бути не так зручно, як деякі хеширующие програми там, але це нативна реалізація, яка не вимагає, щоб стороннє програмне забезпечення працювало. Корисно, наприклад, у обмежених середовищах або коли немає доступу до Інтернету для завантаження цих програм.

Генерація хешу була інтегрована в PowerShell 4.0. Він включений у Windows 8.1 та Windows Server 2012 R2, а також доступний для Windows 7 Service Pack 1, Windows Server 2012 та Windows Server 2008 R2 Service Pack 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 -Альгоритм SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Альгоритм SHA512 Stream.

Основна відмінність шляху та літералупата полягає в тому, що 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 (іспанська))