1
resposta

Script retorna hash diferente que o cmdlet do PowerShell

Olá,

Estou em dúvidas quanto ao script para criar o hash SHA1. Testei o cmdlet em um arquivo o comando do PowerShell e o hash não bate com o gerado pelo script apresentado.

Comando do PowerShell

Get-FileHash -Algorithm SHA1 arquivo
1 resposta

Olá Cesar, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

A diferença entre os resultados apresentados para o hash, ocorre devido ao tipo de Namespace utilizado para realizar a manipulação do rash, no script criado no curso é utilizado o Namespace System.Security.Cryptography, já quando utilizamos o comando Get-FileHash é utilizado o módulo Microsoft.PowerShell.Utility, embora ambos os algoritmos sejam baseados no mesmo princípio, podem levar a resultados ligeiramente diferentes.

Além disso, no código da aula o conteúdo do arquivo é tratado como texto UTF-8 antes de calcular o hash. No entanto, o comando Get-FileHash usa a codificação padrão do sistema para ler o arquivo. Se o arquivo estiver codificado com uma codificação diferente de UTF-8, isso pode levar a diferenças nos bytes lidos e, consequentemente, nos hashes gerados.

Por isso, quando trabalhamos com o uso do hash é importante padronizarmos a fonte de coleta do hash, se iniciamos a coleta através de um script como o criado na aula, devemos utilizá-lo caso seja necessário confirmar um determinado hash, mas, se iniciarmos a coleta com o comando Get-FileHash este mesmo comando deve ser utilizado para conferências futuras, para que este tipo de comportamento ocorra.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software