Ottieni hash di file utilizzando Windows PowerShell

Ottenere hash di file può essere abbastanza utile. Questo può essere usato ad esempio per assicurarsi che i file di backup non siano corrotti o modificati (generando hash prima e dopo il processo) o per assicurarsi che nessuno abbia manomesso un file importante.

Puoi vederlo anche sui siti di download, ma l'uso è limitato. Il motivo è semplice: se un utente malintenzionato è riuscito a modificare il file scaricato, è possibile che anche il sito Web sia stato compromesso. Ciò potrebbe teoricamente almeno significare che l'hash del file visualizzato sul sito sia stato modificato per adattarsi alla nuova versione dannosa del download.

In passato abbiamo esaminato un numero considerevole di programmi correlati all'hashing: dall'estensione della shell di Windows HashTab, agli HashMyFiles di Nirsoft fino a File Check MD5 e MD5 Check Utility.

Ottieni hash di file utilizzando Windows PowerShell

Se è necessario generare l'hash di un file rapidamente su un computer Windows, è possibile utilizzare anche PowerShell.

Potrebbe non essere comodo come alcuni dei programmi di hashing là fuori, ma è un'implementazione nativa che non richiede software di terze parti per funzionare. Utile ad esempio in ambienti con restrizioni o quando non è disponibile una connessione Internet per scaricare questi programmi.

La generazione di hash è stata integrata in PowerShell 4.0. È incluso in Windows 8.1 e Windows Server 2012 R2 ed è disponibile anche per Windows 7 Service Pack 1, Windows Server 2012 e Windows Server 2008 R2 Service Pack 1.

  1. Toccare il tasto Windows, digitare PowerShell e premere il tasto Invio per avviarlo.

Il comando principale è get-filehash FILEPATH, ad esempio get-filehash c: \ test.txt .

Get-FileHash utilizza l'algoritmo Sha256 per impostazione predefinita. È possibile specificare un algoritmo diverso invece utilizzando il parametro -Algorithm.

Supportati sono: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

Si noti che MD5 e SHA1 non sono più considerati sicuri ma sono ancora supportati.

Quindi, per generare un hash Sha512 dovresti usare il comando get-filehash -Algorithm Sha512 c: \ test.txt.

È inoltre possibile utilizzare -LiteralPath o -InputStream invece dell'opzione del percorso predefinito.

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

La differenza principale tra path e literalpath è che literalpath non supporta caratteri jolly e viene utilizzato esattamente come viene digitato.

CertUtil

CertUtil è un altro programma nativo di Windows che è possibile utilizzare per calcolare gli hash dei file. È possibile eseguire il programma dal prompt dei comandi o utilizzando PowerShell.

Il comando di base è certutil -hashfile PATH, ad esempio certutil -hashfile c: \ example.txt .

Puoi anche specificare l'algoritmo hash. Supportati sono MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. L'algoritmo predefinito è MD5.

Per utilizzare un algoritmo hash diverso, specificarlo dopo il comando, ad esempio certutil -hashfile c: \ example.txt SHA512 .

Parole di chiusura

È possibile utilizzare i comandi negli script per calcolare gli hash per diversi file in un'unica operazione. I due strumenti nativi get-filehash e certutil sono abbastanza utili per il rapido calcolo degli hash su Windows e anche per l'uso degli script. (via Genbeta (spagnolo))