web-dev-qa-db-fra.com

Comment puis-je générer une somme MD5 pour un dossier sur Windows?

Il existe plusieurs postes sur la génération de SUMs MD5 pour les fichiers et/ou les dossiers sur différentes plates-formes Windows. Cependant, Aucun de ceux-ci ont travaillé pour moi. J'ai essayé:

  • Windows CERTUTIL : CertUtil -hashfile myFileName MD5 retourne " l'accès est refusé" sur tous les dossiers (mon cmd fonctionne avec des privilèges administrateurs),
  • hashtab : ne s'affiche pas dans la boîte de dialogue Propriétés dans Explorer comme annoncé,
  • Propriétés d'été : ne s'affiche pas non plus dans la boîte de dialogue Propriétés,
  • hashcheck : n'autorise pas MD5 pour les dossiers, uniquement des fichiers,
  • MD5Checker : Ne calculez pas le MD5 de l'ensemble du dossier (uniquement des fichiers de celui-ci).

À ce stade, je commence à devenir un peu désespéré. Veuillez noter que j'utilise Windows 7 x64.

Pour info, si possible, j'essaie de trouver un outil permettant à quelque chose comme celui-ci sous Linux:

find DIR -type f -exec md5sum {} \; | sort -k 2 | md5sum
8
Klangen

Si vous souhaitez utiliser une interface graphique, je peux recommander FSum frontend .

FSUM FRONTEND est un outil gratuit et facile à utiliser qui permet de calculer les digests de message, les checksums et les HMACS pour les fichiers et les chaînes de texte. Il prend en charge le glisser-déposer et vous pouvez gérer plusieurs fichiers à la fois. La somme de contrôle générée peut être utilisée pour vérifier l'intégrité des fichiers.

Il prend en charge 96 algorithmes: [...] MD5 [...]

Screenshot of FsumFrontend


Comme le nom l'indique, FSUM FRONTEND est une interface graphique pour (entre autres) SlavaSoft FSum .

Un utilitaire de ligne de commande rapide et pratique pour la vérification de l'intégrité des fichiers. Il offre un choix de 13 des fonctions de hash et de contrôle les plus populaires pour le calcul du message de fichier de fichier et le calcul de la somme de contrôle.

Ses caractéristiques incluent:

  • Possibilité d'agir récursivement. FSUM peut fonctionner non seulement sur des fichiers à partir d'un répertoire spécifique, mais également sur des fichiers de tous les sous-répertoires du répertoire spécifié;
  • Travailler avec Fichiers de grande taille. (Testé sur des tailles de fichier allant jusqu'à 15 Go);
  • Full Compatibilité avec MD5Sum utilitaire

Screenshot of fsum.exe command line usage

5
ischeriad

Vous pouvez atteindre l'équivalent à votre commande UNIX (moins le tri) avec les éléments suivants:

for /R . %f in (*.*) do @certutil -hashfile "%f" MD5

Vous pouvez changer le point (.) Pour tout dossier que vous souhaitez recueillir, et le *.* À quel que soit le masque de fichiers dont vous avez besoin afin de réduire votre jeu de fichiers.

3
Javier Gostling

PowerShell fournit une déclaration de boucle, certaines personnes peuvent préférer cette syntaxe

foreach($f in dir){ certutil -hashfile "$f" md5}

Référence: https://fr.wikiversity.org/wiki/powershell/loops

2
Endle_Zhenbo

En retard à la question, mais ne trouvant que des réponses non acceptées ici est ce que j'ai trouvé:

function Get-FolderHash ($folder) {
 dir $folder -Recurse | ?{!$_.psiscontainer} | %{[Byte[]]$contents += [System.IO.File]::ReadAllBytes($_.fullname)}
 $hasher = [System.Security.Cryptography.SHA1]::Create()
 [string]::Join("",$($hasher.ComputeHash($contents) | %{"{0:x2}" -f $_}))
}

Copiez et collez ce code à la console PowerShell et tapez:

Get-FolderHash "C:\CustomFolder"

Runtime peut varier en fonction du contenu du dossier.

1
Switcher