Per Windows, puoi utilizzare PowerShell, installato per impostazione predefinita su Windows 7/Server 2008 R2 e versioni successive. La funzione Get-FileHash è stata introdotta in PowerShell v4, fornito con Windows 8.1 e Windows Server 2012 R2. Per le versioni precedenti di PowerShell, questi script del blog di James Manning faranno al caso tuo.
Esempio di utilizzo di Get-FileHash:
C:\Windows> Get-FileHash -Algorithm md5 .\notepad.exe
Algorithm Hash Path
--------- ---- ----
MD5 24DA05ADE2A978E199875DA0D859E7EB C:\Windows\notepad.exe
Gli algoritmi supportati sono SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5 e RIPEMD160.
L'unico strumento che mi viene in mente, in particolare per Unix (o comunque si dovrebbe pluralizzare) è openssl:
openssl dgst -sha256 path/to/file
Il comando openssl dgst fornisce molte opzioni di hashing comuni e openssl è installato sulla maggior parte dei sistemi Unix per impostazione predefinita ed è disponibile anche per Windows. Credo che venga fornito anche con OSX. Sono d'accordo, è una situazione tutt'altro che ideale per Windows spedire senza tale strumento.
Per quanto riguarda gli strumenti GUI, personalmente non conosco altro che HashCalc, che hai già citato.
In un ambiente misto Windows/Unix, ciò che utilizzo per gli algoritmi crittografici comuni è:
- OpenSSL per molti calcoli, in particolare hash (ma non HMAC) e manipolazioni di certificati X.509.
hashlib
di Python ehmac
per SHA e HMAC.
Sfortunatamente, nessuno dei due è fornito con Windows, richiedono un'installazione separata.
Ecco un semplice one-liner per calcolare l'HMAC di un file usando Python. Digita la chiave in esadecimale nel terminale (o passala sullo standard input con echo … |
, ma attenzione che la chiave finirà poi nella cronologia della shell). Il file viene letto in memoria, cosa che non va bene per file di grandi dimensioni.
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
Su Windows, un semplice verificatore di hash (che supporta SHA e alcuni altri e HMAC) utilizzabile da una persona non tecnica è SlavaSoft HashCalc. Sfortunatamente, non è open-source, quindi potresti non avere la massima fiducia nel suo funzionamento.