Für Windows können Sie PowerShell verwenden, das standardmäßig auf Windows 7 / Server 2008 R2 und höher installiert ist. Die Get-FileHash-Funktion wurde in PowerShell v4 eingeführt, das mit Windows 8.1 und Windows Server 2012 R2 geliefert wird. Für ältere PowerShell-Versionen reichen diese Skripte aus dem Blog von James Manning aus.
Beispiel für die Verwendung von Get-FileHash:
C:\Windows> Get-FileHash -Algorithm md5 .\notepad.exe
Algorithm Hash Path
--------- ---- ----
MD5 24DA05ADE2A978E199875DA0D859E7EB C:\Windows\notepad.exe
Unterstützte Algorithmen sind SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5 und RIPEMD160.
Das einzige Werkzeug, das mir einfällt, insbesondere für Unixe (oder wie auch immer Sie das in den Plural setzen sollen) ist openssl:
openssl dgst -sha256 path/to/file
Der Befehl openssl dgst bietet viele gängige Hashing-Optionen, und openssl wird standardmäßig auf den meisten Unix-Systemen installiert und ist auch für Windows verfügbar. Ich glaube, es wird auch mit OSX ausgeliefert. Ich stimme zu, es ist alles andere als ideal, wenn Windows ohne ein solches Tool ausgeliefert wird.
Was GUI-Tools betrifft, kenne ich persönlich kein anderes als HashCalc, das Sie bereits erwähnt haben.
In einer gemischten Windows/Unix-Umgebung verwende ich für gängige kryptografische Algorithmen Folgendes:
- OpenSSL für viele Berechnungen, insbesondere Hashes (aber nicht HMAC) und Manipulationen von X.509-Zertifikaten.
- Pythons
hashlib
undhmac
für SHA und HMAC.
Leider wird beides nicht mit Windows geliefert, sie erfordern eine separate Installation.
Hier ist ein einfacher Einzeiler, um den HMAC einer Datei mit Python zu berechnen. Geben Sie den Schlüssel hexadezimal in das Terminal ein (oder übergeben Sie ihn auf der Standardeingabe mit echo … |
, aber beachten Sie, dass der Schlüssel dann in der Shell-History landet). Die Datei wird in den Speicher eingelesen, was bei großen Dateien nicht ausreicht.
python -c "import binascii, hashlib, hmac, sys; print hmac.new(binascii.unhexlify(str.strip(sys.stdin.readline())), open(sys.argv[1]).read(), hashlib.sha256).hexdigest()" myfile.dat
Unter Windows ist SlavaSoft HashCalc ein einfacher Hash-Verifizierer (der SHA und einige mehr und HMAC unterstützt), der von einer nicht-technischen Person verwendet werden kann. Leider ist es nicht Open-Source, daher haben Sie möglicherweise nicht das größte Vertrauen in seine Funktionsweise.