Pour Windows, vous pouvez utiliser PowerShell, qui est installé par défaut sur Windows 7 / Server 2008 R2 et versions ultérieures. La fonction Get-FileHash a été introduite dans PowerShell v4, qui est fourni avec Windows 8.1 et Windows Server 2012 R2. Pour les anciennes versions de PowerShell, ces scripts du blog de James Manning feront l'affaire.
Exemple d'utilisation de Get-FileHash :
C:\Windows> Get-FileHash -Algorithm md5 .\notepad.exe
Algorithm Hash Path
--------- ---- ----
MD5 24DA05ADE2A978E199875DA0D859E7EB C:\Windows\notepad.exe
Les algorithmes pris en charge sont SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5 et RIPEMD160.
Le seul outil qui me vient à l'esprit, en particulier pour Unix (ou quelle que soit la manière dont vous êtes censé le mettre au pluriel) est openssl :
openssl dgst -sha256 path/to/file
La commande openssl dgst fournit de nombreuses options de hachage courantes, et openssl est installé par défaut sur la plupart des systèmes Unix et est également disponible pour Windows. Je crois qu'il est également livré avec OSX. Je suis d'accord, c'est une situation loin d'être idéale pour que Windows soit livré sans un tel outil.
En ce qui concerne les outils graphiques, je n'en connais personnellement aucun autre que HashCalc, que vous avez déjà mentionné.
Dans un environnement mixte Windows/Unix, ce que j'utilise pour les algorithmes cryptographiques courants est :
- OpenSSL pour de nombreux calculs, en particulier les hachages (mais pas HMAC) et les manipulations de certificats X.509.
- Le
hashlib
de Python ethmac
pour SHA et HMAC.
Malheureusement, ni l'un ni l'autre n'est fourni avec Windows, ils nécessitent une installation séparée.
Voici un simple one-liner pour calculer le HMAC d'un fichier en utilisant Python. Tapez la clé en hexadécimal dans le terminal (ou passez la en entrée standard avec echo … |
, mais attention, la clé se retrouvera alors dans l'historique du shell). Le fichier est lu en mémoire, ce qui ne convient pas aux fichiers volumineux.
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
Sous Windows, un simple vérificateur de hachage (supportant SHA et quelques autres, et HMAC) utilisable par une personne non technique est SlavaSoft HashCalc. Malheureusement, ce n'est pas open-source, donc vous n'avez peut-être pas la plus grande confiance dans son fonctionnement.