Хеш або контрольна сума файлу - коротке унікальне значення, що обчислюється з вмісту файлу і зазвичай використовується для перевірки цілісності та відповідності (збігу) файлів при завантаженні, особливо якщо мова йде про великих файлах (образи системи і подібні), які можуть бути Завантажено з помилками або є підозри про те, що файл був підмінений шкідливим ПЗ.
На сайтах завантажень часто буває представлена контрольна сума, обчислена за алгоритмами 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 шлях_до_файлу)