Estou verificando os hashes de arquivo usando vários algoritmos diferentes no PowerShell. Quando uso o MacTripleDes, sempre recebo hashes diferentes. Todos os outros, como SHA256 ou MD5, sempre fornecem respostas confiáveis. Você pode replicar o problema no seu próprio computador:
"this is a test" | out-file test.txt
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm mactripledes
get-filehash test.txt -algorithm mactripledes
Eu recebo os mesmos valores de hash para os dois primeiros hashes, mas valores diferentes para os segundos dois hashes. O MacTripleDes deve ser usado de maneira diferente?
Algorithm Hash Path
--------- ---- ----
SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt
SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt
MACTRIPLEDES 904D74A529C7A739 C:\temp\test.txt
MACTRIPLEDES AF720778A2C878A2 C:\temp\test.txt
powershell
hash
user6722022
fonte
fonte
Get-FileHash
cmdlet não parece oferecer suporte a um parâmetro-chave.Respostas:
MACTripleDES é diferente dos outros algoritmos oferecidos pelo
Get-FileHash
cmdlet. Não sei por que ele foi incluído no cmdlet, para ser sincero. Não combina com os outros, IMO.SHA1, SHA256, MD5, RIPEMD, etc., essas são todas as funções de hash regulares. Eles pegam alguns dados de comprimento arbitrário e criam um resumo de comprimento fixo que representa esses dados. O MACTripleDES é diferente, pois não é apenas um algoritmo de hash. Ele possui TripleDES no nome e o 3DES é um algoritmo de criptografia, não um algoritmo de hash. A maior diferença entre funções hash e funções de criptografia é que a criptografia pode ser revertida com uma chave. Hashes são funções de mão única.
E MAC significa código de autenticação de mensagens. É um código usado para autenticar uma mensagem. Para verificar se não foi adulterado. Os MACs são projetados para serem efêmeros ou exclusivos de uma mensagem para a seguinte.
Confira o construtor :
StaticRandomNumberGenerator gera números aleatórios ... números aleatórios significa que o resultado será diferente a cada execução.
fonte
KeyedHashAlgorithm
objeto. Mas não há nenhuma maneira de fazer tanto comGet-FileHash
...Get-FileHash
não permitir que você especifique a chave a ser usada e, em vez disso, gerar uma chave aleatória que nunca expõe ao usuário, isso parece ser um bug (conforme o título original da pergunta), pois você não pode realmente usar para qualquer coisa. (Não que eu entendo por que você iria pegar MACTripleDES em primeiro lugar se você queria um MAC.)Get-FileHash
deve ser alguma forma de RNG complicado?