Для вычисления хеша MD5 в Powershell есть командлет Get-FileHash. Эта команда доступна с 4 версии Powershell. Что бы узнать версию запустите:
host
#или
$PSVersionTable
Что бы получить хеш выполните следующее:
Get-FileHash -Path "G:\restart.txt" -Algorithm MD5
Где:
- Path - путь до файла
- Alogoritm - алгоритм хеширования
Мы можем использовать и другие доступные алгоритмы:
- SHA1
- SHA256 (по умолчанию)
- SHA384
- SHA512
- MD5
При необходимости алгоритм по умолчанию можно сменить:
$PSDefaultParameterValues.add("Get-FileHash:Algorithm","MD5")
Если мы хотим вычислить хеш всех файлов в папке:
Get-ChildItem -Path C:\Program Files\Adobe\ -Recurse -Exclude "*.rar" | Get-FileHash -Algorithm MD5
Где:
- Recurse - рекурсивный поиск. Ищем по все вложенным папкам.
- Exclude - исключение файлов с расширением .rar
Более подробно командлет Powershell Get-ChildItem рассматривался тут.
Вычисление хеша md5 из больших файлов
Мы можем загружать большие файлы не целиком, а частями, для этого можно использовать стримы powershell:
$file = "G:\logo.psd"
$stream = [System.IO.File]::OpenRead($file)
$hash = Get-FileHash -InputStream $stream -Algorithm MD5
$stream.Close()
$hash
Вычисление хеша MD5 из строки используя Powershell
Мы не можем получить хеш из строки используя Get-FileHash, но можем преобразовать строку в поток:
$string = "Word"
$stream = [System.IO.MemoryStream]::new($utf8.GetBytes($string))
$hash = Get-FileHash -Algorithm MD5 -InputStream $stream
$hash
...
Рекомендую
Подписывайтесь на наш Telegram канал
Теги: #powershell