Existe-t-il un utilitaire de somme de contrôle intégré sous Windows 7 ?
Existe-t-il un utilitaire de somme de contrôle/hachage intégré sous Windows 7 ?
CertUtil est un utilitaire Windows préinstallé qui peut être utilisé pour générer des sommes de contrôle de hachage :
certUtil -hashfile pathToFileToCheck [HashAlgorithm]
HashAlgorithm choices : MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
Ainsi, par exemple, ce qui suit génère une somme de contrôle MD5 pour le fichier C:\TEMP\MyDataFile.img
:
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
Pour obtenir une sortie similaire à celle des systèmes *Nix, vous pouvez ajouter un peu de magie PowerShell :
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Il existe un utilitaire intégré, comme spécifié dans cette autre réponse .
Vous pouvez cependant souhaiter utiliser cette application gratuite appelée HashTab qui s'intègre parfaitement à l'explorateur Windows en enregistrant un… enfin, un onglet dans la boîte de dialogue des propriétés des fichiers. C'est plutôt sympa.
J'utilise HashCheck dernière version ) qui s'intègre comme une page de propriétés pour les fichiers et comprend un menu contextuel pour comparer avec les fichiers de hash check (SFV).
C'est gratuit, et la source est disponible.
Il y a l'utilitaire FCIV de Microsoft, le Microsoft File Checksum Integrity Verifier lien de téléchargement ).
L'outil Microsoft File Checksum Integrity Verifier est un utilitaire en ligne de commande non pris en charge qui calcule les hachages cryptographiques MD5 ou SHA1 des fichiers.
Il n'affiche pas Windows 7 dans la configuration requise mais je viens de l'utiliser dans Windows 8 et il a fonctionné.
PowerShell version 4 et supérieure inclut le cmdlet Get-FileHash .
powershell get-filehash -algorithm md5 <file_to_check>
Utilisez doskey pour créer un alias persistant et plus facile à retenir.
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
La nouvelle version de 7-Zip vous donne également la possibilité de faire des sommes de contrôle par un simple clic droit (cela n'inclut pas MD5 ). Il y a SHA-1 , SHA-256 , CRC-32, CRC-64, etc.
Pour MD5, vous pouvez télécharger HashTab et vérifier en cliquant avec le bouton droit et ensuite les propriétés.
En voici une que j'ai déjà utilisée et qui s'intègre parfaitement à la boîte de dialogue “Propriétés” d'Explorer : Propriétés d'été . C'est une source ouverte, et une version x64 est également disponible.
J'aime également le FileAlyzer de Safer Networking, qui offre des fonctionnalités supplémentaires. Mais juste pour les sommes de contrôle, Summer Properties est léger et fait le travail.
J'ai trouvé ce script PowerShell :
param([switch]$csv, [switch]$recurse)
[Reflection.Assembly]::LoadWithPartialName("System.Security") | out-null
$sha1 = new-Object System.Security.Cryptography.SHA1Managed
$pathLength = (get-location).Path.Length + 1
$args | %{
if ($recurse) {
$files = get-childitem -recurse -include $_
}
else {
$files = get-childitem -include $_
}
if ($files.Count -gt 0) {
$files | %{
$filename = $_.FullName
$filenameDisplay = $filename.Substring($pathLength)
if ($csv) {
write-host -NoNewLine ($filenameDisplay + ",")
} else {
write-host $filenameDisplay
}
$file = [System.IO.File]::Open($filename, "open", "read")
$sha1.ComputeHash($file) | %{
write-host -NoNewLine $_.ToString("x2")
}
$file.Dispose()
write-host
if ($csv -eq $false) {
write-host
}
}
}
}
Source : Calcul de SHA1 dans PowerShell
Il exploite le .NET que vous avez installé, je suppose
J'ajoute ceci ici uniquement parce que je n'ai pas vu d'exemples de powerhell entièrement fonctionnels, prêts pour le copier-coller :
C:\> powershell "Get-FileHash %systemroot%\system32\csrss.exe"
Algorithm Hash
--------- ----
SHA256 CB41E9D0E8107AA9337DBD1C56F22461131AD0952A2472B4477E2649D16E...
C:\> powershell -c "(Get-FileHash -a MD5 '%systemroot%\system32\csrss.exe').Hash"
B2D3F07F5E8A13AF988A8B3C0A800880
C:\> CertUtil -hashfile "%systemroot%\system32\csrss.exe" MD5 | findstr -v file
b2 d3 f0 7f 5e 8a 13 af 98 8a 8b 3c 0a 80 08 80
C:\>
La sortie de certutil
semble avoir changé depuis Windows 8, donc mon ancien filtre pour isoler le hachage ne fonctionne plus. Les espaces supplémentaires ont également disparu - une chose de moins à se soucier lors de l'écriture de scripts. Voici la nouvelle démo de la fonction copier-coller :
C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" | findstr -v ash
0300c7833bfba831b67f9291097655cb162263fd
C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" SHA256 | findstr -v :
a37d616f86ae31c189a05b695571732073b9df97bf5a5c7a8ba73977ead3e65b
C:\>ver
Microsoft Windows [Version 10.0.16299.1451]
C:\>
Pour rendre cette fonction plus résistante à la casse lors d'un autre changement futur de certutil
, nous devrions chercher des lignes avec des caractères non hexadécimaux à filtrer : [^0-9a-zA-Z]
. Cela devrait également rendre le système plus sûr pour les autres langues et lieux.
C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc
Pourquoi cette regex anti-hex est-elle si étrange ? Voir cette question pour apprendre comment les plages de regex dans findstr
ne fonctionnent pas comme elles le devraient. J'ai inclus un caractère espace supplémentaire pour la rétrocompatibilité avec les anciennes versions de certutil
, mais il est optionnel.
Notez que la valeur par défaut de powerhell Get-FileHash
est SHA256, alors que certutil
est toujours SHA1. Spécifiez donc votre algorithme explicitement si nécessaire. Vous pouvez rapidement vérifier les options disponibles comme ceci :
C:\>powershell -c "Get-FileHash -?" | findstr gori
Get-FileHash [-Path] <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
Get-FileHash -LiteralPath <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 |
Get-FileHash -InputStream <Stream> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
C:\>certutil -hashfile -v /? | findstr gori
CertUtil [Options] -hashfile InFile [HashAlgorithm]
Hash algorithms: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
Microsoft File Checksum Integrity Verifier _. Il peut calculer les valeurs de hachage MD5 et SHA-1 .
Télécharger, extraire les fichiers, puis ouvrir une invite de commande, aller au chemin extrait et ensuite taper la commande suivante :
fciv -md5 filepath\filename.extension
Par exemple :
fciv -md5 d:\programs\setup.exe
Malheureusement, pas que je sache, mais la suite Sysinternals de Microsoft comprend un bel outil appelé * sigcheck **.
Un fichier de lot basé sur le commentaire de pbarney à la réponse ayant reçu le plus de votes positifs : Ceci copie le hachage MD5 de tout fichier glissé sur le fichier de traitement par lots dans le presse-papiers :
@ECHO OFF
FOR /f "tokens=*" %%i IN ('@certutil -hashfile %1 MD5 ^| find /v "hash of file" ^| find /v "CertUtil"') DO SET r=%%i
SET r=%r: =%
ECHO %r% | clip
Pour en faire un élément de menu contextuel à la place :
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Get MD5]
@="Copy MD5 to Clipboard"
[HKEY_CLASSES_ROOT\*\shell\Get MD5\command]
@="\"C:\<PATH TO BAT FILE>\getMD5.bat\" \"%1\""
Il s'agit simplement d'un script shell cmd qui utilise la réponse de tedr2 mais supprime les lignes et espaces de sortie inutiles :
:: hash.cmd : Get a hash of a file
:: p1: file to be hashed
:: p2: Hash algorithm in UPPERCASE
:: p3: Output file
@setlocal
@for /f "tokens=*" %%a in (
'@certutil -hashfile %1 %2 ^|find /v "hash of file" ^|find /v "CertUtil"'
) do @(
@set str=%%a
)
@set str=%str: =%
@echo %str%
@endlocal
La sortie peut être redirigée vers un fichier si nécessaire :
@echo %str% > %3
par exemple
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
C'est exactement ce que fait le menu contextuel du MD5 et le 003. Il ajoute une option * MD5 ** au menu contextuel des fichiers :
Le menu contextuel MD5 est une extension shell gratuite pour Windows qui affiche la somme de hachage MD5 du fichier sélectionné.
Il indique qu'il est compatible avec Windows 95, 98, ME, NT, 2000 et XP, bien qu'il fonctionne pour moi parfaitement bien sur Windows 7. C'est un minuscule téléchargement (238 KB) et il comprend tout ce dont vous avez besoin.
Cygwin contient un utilitaire md5sum.exe
qui devrait faire ce que vous voulez.
J'utilise checksum utilitaire de ligne de commande.
md5
, sha1
, sha256
et sha512
. Utilisation : checksum [-t=sha1|sha256|sha512|md5] [-c=signature] [-f=]filepath
-?
, --help
, -h
Imprime les options. -f
, --file=VALUE
Nom de fichier. -t
, --type
, --hashtype=VALUE
Hashtype Par défaut, md5
. -c
, --check=VALUE
Facultatif : vérifier - la signature que vous voulez vérifier. Non sensible à la casse. # Check md5 for "E:\Саша Неотразима\Sasha-Irresistible.exe" file
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe"
342B45537C9F472B93A4A0C5997A6F52
# Check sha256
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256
F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
# Correct 41474147414741474147 sha256 hash or not?
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c 41474147414741474147
Error - hashes do not match. Actual value was 'F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4'
# One more attempt
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
Hashes match..
Ce n'est pas un utilitaire intégré, mais c'est une très bonne option http://checksumcompare.sanktuaire.com
Vous pourriez comparer les sommes de contrôle par fichier et/ou les résumés si deux dossiers diffèrent ou sont identiques.
Vous pouvez utiliser MD5sums for Windows , un téléchargement de seulement 28 KB Cygwin pourrait être excessif si tout ce que vous voulez faire est de calculer les hachages MD5).
La façon la plus simple de l'utiliser est d'utiliser Explorer pour glisser et déposer des fichiers sur md5sums.exe afin d'obtenir leurs hachages MD5.
La bonne réponse est bien sûr, oui, CertUtil (voir la réponse de tedr2 ).
Mais je vais ajouter le File Checksum Verifier gratuit de Penteract qui, je pense, est l'un des programmes les plus conviviaux. (Avertissement : je suis affilié à Penteract.)
Quelques uns de ses avantages :
Pour vérifier l'intégrité de ce programme (contre les attaques man-in-the-middle attacks ) - il télécharge via une connexion sécurisée.
Plus : gratuit, hors ligne (vous n'avez donc pas besoin de télécharger vos fichiers), convivial (faites glisser un fichier et obtenez le résultat), se lance à partir du menu de démarrage (pas besoin de chercher l'exécutable téléchargé quand vous voulez l'utiliser dans un an), et supporte MD5, SHA1, SHA256, etc.
HashTab 3.0 est une extension shell gratuite qui calcule de nombreuses sommes de contrôle, y compris MD5. Elle est intégrée comme un nouvel onglet dans les propriétés du fichier.
Vous pouvez essayer msys2, c'est ici .
Tapez simplement (algorithme)sum. (algorithme) est l'algorithme de hachage que vous voulez utiliser, par exemple md5, sha1, sha256 …
Contrairement à Cygwin, cet outil est portable, il vous suffit de télécharger le fichier .zip et de l'extraire où vous voulez. Vous pouvez l'utiliser par un simple clic (msys2.exe).
Hop cet outil vous aidera.
Eh bien, j'ai fait un programme pour calculer quelques hachages à partir d'un fichier. J'espère que cela vous aidera.
Qu'est-ce que cela fait ? Il calcule les hachages SHA-1 , SHA-384, MD5 et SHA-256 . Eh bien, c'est à peu près tout :)
Pour une solution qui fonctionne sous Windows ou dans n'importe quel autre environnement, utilisez Python.
installez Python – un installateur Windows est fourni sur https://www.python.org/downloads/
téléchargez une implémentation testée de cksum
, par exemple http://pastebin.com/raw.php?i=cKATyGLb – sauvegardez le contenu de ce c:\cksum.py
ou de tout autre programme qui vous convient
Puis, pour effectuer une somme de contrôle :
python c:\cksum.py INPUTFILE
Pas aussi rapide qu'un utilitaire compilé, mais compatible avec Unix cksum
et fonctionnant partout.