Вземете файлови хеши с помощта на Windows PowerShell

Получаването на хеши на файлове може да бъде доста полезно. Това може да се използва например, за да се гарантира, че архивираните файлове не са повредени или модифицирани (чрез генериране на хешове преди и след процеса) или за да се гарантира, че никой не е подправен с важен файл.

Може да го видите и в сайтовете за изтегляне, но използването им е ограничено. Причината е проста: ако един атакуващ успее да промени файла за изтегляне, има вероятност и уебсайтът да бъде компрометиран. Това теоретично би могло да означава поне, че хешът на файла, показан на сайта, е променен, както и за новата злонамерена версия на изтеглянето.

Прегледахме значителен брой програми, свързани с хеширане в миналото: от разширението на обвивката на Windows HashTab, през HashMyFiles на Nirsoft до File Check MD5 и MD5 Check Utility.

Вземете файлови хеши с помощта на 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 Поток.

Основната разлика между пътя и literalpath е, че 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 (испански))