Вычисление хеша в Powershell


03 июля 2019


Вычисление хеша MD5 в Powershell

Для вычисления хеша 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

Powershell MD5 вычисление хэша файлов

Вычисление хеша MD5 из строки используя Powershell

Мы не можем получить хеш из строки используя Get-FileHash, но можем преобразовать строку в поток:

$string = "Word"
$stream = [System.IO.MemoryStream]::new($utf8.GetBytes($string))
$hash = Get-FileHash -Algorithm MD5 -InputStream $stream
$hash

 

...

Теги: #powershell


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.