Obter hashes de arquivo pode ser bastante útil. Isso pode ser usado, por exemplo, para garantir que os arquivos de backup não estejam corrompidos ou modificados (gerando hashes antes e depois do processo) ou para garantir que ninguém adulterou um arquivo importante.
Você também pode vê-lo em sites de download, mas o uso é limitado. O motivo é simples: se um invasor conseguiu alterar o arquivo de download, é possível que o site também tenha sido comprometido. Teoricamente, isso poderia pelo menos significar que o hash do arquivo exibido no site também foi modificado para se ajustar à nova versão maliciosa do download.
Analisamos um número considerável de programas relacionados a hash no passado: da extensão do shell do Windows HashTab, do HashMyFiles da Nirsoft ao File Check MD5 e MD5 Check Utility.
Obter hashes de arquivo usando o Windows PowerShell
Se você precisar gerar rapidamente o hash de um arquivo em uma máquina Windows, também poderá usar o PowerShell para isso.
Pode não ser tão confortável quanto alguns dos programas de hash existentes, mas é uma implementação nativa que não requer software de terceiros para funcionar. Útil em ambientes restritos, por exemplo, ou quando não há conexão com a Internet disponível para baixar esses programas.
A geração de hash foi integrada ao PowerShell 4.0. Ele está incluído no Windows 8.1 e Windows Server 2012 R2 e também está disponível para Windows 7 Service Pack 1, Windows Server 2012 e Windows Server 2008 R2 Service Pack 1.
- Toque na tecla Windows, digite PowerShell e pressione a tecla Enter para iniciá-la.
O comando principal é get-filehash FILEPATH, por exemplo, get-filehash c: \ test.txt .
Get-FileHash usa o algoritmo Sha256 por padrão. Você pode especificar um algoritmo diferente usando o parâmetro -Algorithm.
Os suportados são: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160
Observe que MD5 e SHA1 não são mais considerados seguros, mas ainda são suportados.
Portanto, para gerar um hash Sha512, você usaria o comando get-filehash -Algorithm Sha512 c: \ test.txt.
Você também pode usar -LiteralPath ou -InputStream em vez da opção de caminho padrão.
- LiteralPath: get-filehash -LiteralPath - Algoritmo SHA512 c: \ test.txt.
- InputStream get-filehash -InputStream -Algorithm SHA512 Stream.
A principal diferença entre o caminho e o caminho literal é que o caminho literal não suporta caracteres curinga e é usado exatamente como é digitado.
CertUtil
CertUtil é outro programa nativo do Windows que você pode usar para calcular hashes de arquivos. Você pode executar o programa no prompt de comando ou usando o PowerShell.
O comando base é certutil -hashfile PATH, por exemplo, certutil -hashfile c: \ example.txt .
Você também pode especificar o algoritmo de hash. São suportados MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. O algoritmo padrão é MD5.
Para usar um algoritmo de hash diferente, especifique-o após o comando, por exemplo, certutil -hashfile c: \ example.txt SHA512 .
Palavras finais
Você pode usar os comandos nos scripts para calcular hashes para vários arquivos em uma operação. As duas ferramentas nativas get-filehash e certutil são bastante úteis para o cálculo rápido de hashes no Windows e também para o uso de scripts. (via Genbeta (espanhol))