Для проверки целостности файлов, особенно тех, которые часто передаются по сети от пользователя к пользователю, часто применяется функция хеширования. При этом информация, то есть файл, с помощью особого алгоритма преобразуется в определенной длины строку, именуемую хешем или контрольной суммой. Как правило, хеш указывается в описании к скачиваемому контенту, реже он прилагается в отдельном текстовом файле.
Скачав файл, пользователь может вычислить его контрольную сумму и сравнить ее с оригинальным хешем, получив таким образом подтверждение, что файл не был поврежден или изменен. Для получения контрольной суммы файлов существуют специальные утилиты, но также для этих целей можно использовать консоль PowerShell в Windows 8.1 и 10. За преобразование содержимого файла в хеш-строку в PowerShell отвечает командлет Get-FileHash, позволяющий получать хеш с использованием алгоритмов SHA1, SHA256, SHA384, SHA512, MD5, MACTripleDES и RIPEMD160.
Давайте посмотрим, как выглядит его применение на практике. Допустим, вы хотите получит контрольную сумму некоего файла music.mp3. Откройте консоль PowerShell и выполните в нем команду такого вида:
Get-FileHash D:\music.mp3 | Format-List
Командлент Format-List указывать необязательно, он служит для форматирования полученных данных, вывода и в более читабельном виде. По умолчанию Get-FileHash всегда вычисляет хеш по алгоритму SHA256, если же вы хотите получить хеш, скажем, по MD5, после пути к файлу необходимо добавить параметр –Algorithm. Вот так:
Get-FileHash D:\music.mp3 -Algorithm MD5 | Format-List
То же самое касается всех прочих поддерживаемых алгоритмов хеширования. Если вы хотите сохранит вычисленную контрольную сумму, данные можно вывести в текстовый файл, добавив в конец командлет перенаправления в файл:
Get-FileHash D:\music.mp3 -Algorithm MD5 | Format-List | Out-File {путь к файлу}
В результате выполнения этой команды контрольная сумма, используемый алгоритм и путь к проверяемому файлу будут сохранены в текстовый файл по указанному адресу.
|