Získejte hash souborů pomocí Windows PowerShell

Získání hash souborů může být docela užitečné. To může být použito například k zajištění toho, aby zálohované soubory nebyly poškozeny nebo změněny (generováním hashů před a po procesu), nebo aby se zajistilo, že nikdo nebude manipulovat s důležitým souborem.

Můžete to vidět také na webech ke stažení, ale jejich použití je omezené. Důvod je jednoduchý: pokud se útočníkovi podařilo změnit soubor ke stažení, existuje šance, že web byl také ohrožen. To by teoreticky mohlo přinejmenším znamenat, že hash souboru zobrazený na webu byl také upraven tak, aby vyhovoval nové škodlivé verzi stahování.

V minulosti jsme zkontrolovali značný počet programů souvisejících s hašováním: od rozšíření prostředí HashTab systému Windows, přes HashMyFiles od společnosti Nirsoft po kontrolu souborů MD5 a MD5 Check Utility.

Získejte hash souborů pomocí Windows PowerShell

Pokud potřebujete rychle vygenerovat hash souboru na počítači se systémem Windows, můžete k tomu použít také PowerShell.

Nemusí to být tak pohodlné jako některé hašovací programy tam, ale je to nativní implementace, která nevyžaduje práci softwaru třetích stran. Vhodné například v omezených prostředích nebo v případě, že není k dispozici připojení k internetu ke stažení těchto programů.

Generování hash bylo integrováno do PowerShell 4.0. Je součástí systémů Windows 8.1 a Windows Server 2012 R2 a je k dispozici také pro Windows 7 Service Pack 1, Windows Server 2012 a Windows Server 2008 R2 Service Pack 1.

  1. Klepněte na klíč Windows, napište PowerShell a stiskem klávesy Enter jej spusťte.

Hlavním příkazem je get-filehash FILEPATH, např. Get-filehash c: \ test.txt .

Get-FileHash ve výchozím nastavení používá algoritmus Sha256. Místo toho můžete zadat jiný algoritmus pomocí parametru -Algorithm.

Podporovány jsou: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

Všimněte si, že MD5 a SHA1 již nejsou považovány za bezpečné, ale stále jsou podporovány.

Chcete-li tedy vygenerovat hash Sha512, použijte příkaz get-filehash -Algorithm Sha512 c: \ test.txt.

Místo výchozí možnosti cesty můžete také použít -LiteralPath nebo -InputStream.

  • LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Algorithm SHA512 Stream.

Hlavní rozdíl mezi cestou a literálovou cestou spočívá v tom, že literalpath nepodporuje žádné zástupné znaky a používá se přesně tak, jak je zadán.

CertUtil

CertUtil je další nativní program Windows, který můžete použít k výpočtu hashe souborů. Program můžete spustit z příkazového řádku nebo pomocí prostředí PowerShell.

Základním příkazem je certutil -hashfile PATH, např. Certutil -hashfile c: \ example.txt .

Můžete také zadat algoritmus hash. Podporovány jsou MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. Výchozí algoritmus je MD5.

Chcete-li použít jiný hashovací algoritmus, zadejte jej po příkazu, např. Certutil -hashfile c: \ example.txt SHA512 .

Závěrečná slova

Příkazy ve skriptech můžete použít k výpočtu hashů pro několik souborů v jedné operaci. Dva nativní nástroje get-filehash a certutil jsou velmi užitečné pro rychlý výpočet hashů ve Windows a také pro použití skriptů. (přes Genbeta (španělsky))