web-dev-qa-db-ja.com

WindowsでフォルダーのMD5サムを生成するにはどうすればよいですか?

さまざまなWindowsプラットフォームでのファイルやフォルダのMD5サムの生成に関する投稿がいくつかあります。ただし、これらのうちnoneはうまくいきました。私は試した:

  • WindowsCertUtilCertUtil -hashfile myFileName MD5はすべてのフォルダで "アクセスが拒否されました"を返します(私のcmdは管理者権限で実行されています)、
  • HashTab :アドバタイズされたエクスプローラーの[プロパティ]ダイアログに表示されません。
  • 夏のプロパティ :プロパティダイアログにも表示されません。
  • HashCheck :MD5をフォルダに許可せず、ファイルのみ、
  • md5checker :フォルダー全体(その中のファイルのみ)のMD5を計算しません。

この時点で私は少し必死になり始めています。 Windows 7 x64を使用していることに注意してください。

参考までに、できればLinuxで次のようなことができるツールを探しています。

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

GUIを使用する場合は、 Fsum Frontend をお勧めします。

Fsumフロントエンドは無料で使いやすいツールで、ファイルやテキスト文字列のメッセージダイジェスト、チェックサム、HMACを計算できます。ドラッグアンドドロップと一度に複数のファイルを処理できますをサポートしています。生成されたチェックサムは、ファイルの整合性を検証するために使用できます。

それは96のアルゴリズムをサポートします:[...] md5 [...]

Screenshot of FsumFrontend


名前が示すように、Fsumフロントエンドは(特に) SlavaSoft fsum のGUIです。

ファイルの整合性を検証するための高速で便利なコマンドラインユーティリティ。ファイルメッセージダイジェストとチェックサム計算のために、13の最も人気のあるハッシュ関数とチェックサム関数を選択できます。

その機能は次のとおりです。

  • 行動する可能性再帰的に。 FSUMは、特定のディレクトリのファイルだけでなく、指定したディレクトリのすべてのサブディレクトリのファイルも操作できます。
  • 大きなサイズのファイルで作業します。 (最大15 GBのファイルサイズでテスト済み);
  • 完全md5sumとの互換性ユーティリティ

Screenshot of fsum.exe command line usage

5
ischeriad

次のコマンドを使用すると、Unixコマンドと同等の処理(並べ替えを除く)を実行できます。

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

ドット(.)再帰したいフォルダの場合、*.*ファイルセットを絞り込むために必要なファイルマスクに。

3
Javier Gostling

PowerShellはループステートメントを提供しますが、この構文を好む人もいます

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

リファレンス: https://en.wikiversity.org/wiki/PowerShell/Loops

2
Endle_Zhenbo

質問には遅れますが、ここでは受け入れられない回答のみを見つけることが私が見つけたものです。

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 $_}))
}

このコードをコピーしてPowerShellコンソールに貼り付け、次のように入力します。

Get-FolderHash "C:\CustomFolder"

ランタイムは、フォルダーの内容によって異なる場合があります。

1
Switcher