Ich überprüfe die Datei-Hashes mit verschiedenen Algorithmen in Powershell. Wenn ich MacTripleDes verwende, erhalte ich immer verschiedene Hashes. Alle anderen, wie z. B. SHA256 oder MD5, geben immer zuverlässige Antworten. Möglicherweise können Sie das Problem auf Ihrem eigenen Computer replizieren:
"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
Ich erhalte die gleichen Hash-Werte für die ersten beiden Hashes, aber unterschiedliche Werte für die zweiten beiden Hashes. Soll MacTripleDes anders verwendet werden?
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
quelle
quelle
Get-FileHash
Cmdlet scheint keinen Schlüsselparameter zu unterstützen.Antworten:
MACTripleDES unterscheidet sich von den anderen vom
Get-FileHash
Cmdlet angebotenen Algorithmen. Ich bin mir nicht sicher, warum es in das Cmdlet aufgenommen wurde, um ehrlich zu sein. Es passt nicht zu den anderen, IMO.SHA1, SHA256, MD5, RIPEMD usw. sind reguläre Hash-Funktionen. Sie nehmen einige Daten beliebiger Länge und erstellen einen Digest fester Länge, der diese Daten darstellt. MACTripleDES unterscheidet sich jedoch darin, dass es sich nicht nur um einen Hash-Algorithmus handelt. Der Name lautet TripleDES, und 3DES ist ein Verschlüsselungsalgorithmus, kein Hashing-Algorithmus. Der größte Unterschied zwischen Hash-Funktionen und Verschlüsselungsfunktionen besteht darin, dass die Verschlüsselung mit einem Schlüssel rückgängig gemacht werden kann. Hashes sind Einwegfunktionen.
Und MAC steht für Message Authentication Code. Es ist ein Code, der zur Authentifizierung einer Nachricht verwendet wird. Um sicherzustellen, dass es nicht manipuliert wurde. MACs sind so konzipiert, dass sie von einer Nachricht zur nächsten flüchtig oder eindeutig sind.
Schauen Sie sich den Konstruktor an :
StaticRandomNumberGenerator generiert Zufallszahlen ... Zufallszahlen bedeuten, dass das Ergebnis bei jedem Lauf anders sein wird.
quelle
KeyedHashAlgorithm
Objekt abrufen . Aber es gibt auch keine MöglichkeitGet-FileHash
...Get-FileHash
Sie den zu verwendenden Schlüssel nicht angeben können und stattdessen einen zufälligen Schlüssel generieren, der dem Benutzer niemals zugänglich gemacht wird, handelt es sich anscheinend um einen Fehler (gemäß dem Originaltitel der Frage), den Sie nicht verwenden können es für alles. (Ich verstehe nicht, warum Sie sich für MACTripleDES entschieden haben, wenn Sie einen MAC wollten.)Get-FileHash
eine Form von verschachteltem RNG sein sollte?