递归命令行 md5 生成器和验证器

递归命令行 md5 生成器和验证器

我想编写一个批处理脚本,能够生成并验证整个目录树的 md5 哈希值。Windows 上有没有类似的程序?

我可以找到许多 md5 程序,但它们无法验证或重复。

答案1

因此,如果您熟悉命令行,您可以尝试以下几个工具:

文件列表

从:http://web.archive.org/web/20151229001926/http://malektips.com:80/filelist-output-directory-csv-spreadsheet-database.html

原始 URL 不再有效,因此上述内容使用了 wayback machine。如果您单击将您带到下载站点的链接,它也会使用 wayback machine,因此这里有一个似乎仍然有效的直接链接:https://www.jam-software.com/filelist/

filelist /?

FileList V2.0

Prints a list of all files in a file system branch

FILELIST [/OPTION] [/FILTER pattern1;pattern2;...] Path [>list.csv]

/OWNERS       Adds a coluimn with the file owners (slower)
/NOHEADER     Leaves out the column headers and only prints the raw data
/ATTRIBUTES   Includes the attributes that are set for each files
/MD5          Adds a column wit the MD5 checksum of each file
/AUTHORS      Additionally extracts name of the author from MS Office documents
/LASTSAVEDATE Additionally extracts the last save date from MS Office documents
/FILTER       Allows to specify one or more filters, separated with semicolons

For example: filelist /md5 C:\temp > list.csv

Add new files then run again filelist /md5 C:\temp > list2.csv 

或者md5deephttp://md5deep.sourceforge.net/start-md5deep.html

 md5deep.exe -r C:\temp >> md5hashes1.txt modify files and run again
 md5deep.exe -r C:\temp >> md5hashes2.txt

现在只需在 excel 或任何 diff 实用程序(例如 Windifff)中将 list.csv 与 list2.csv 进行比较

否则选择:

MD5夏季http://www.md5summer.org/

或者

韓國http://www.big-o-software.com/products/hksfv/

答案2

为什么要重新发明轮子?既然你明确表示你正在寻找一款 Windows 应用,我建议HashCheck Shell 扩展

它可以完成您要求的所有任务,并且占用的资源非常少。

答案3

抱歉,我认为您无法做到这一点。md5 哈希是字节流的哈希,但目录树不是字节流。文件夹是文件(字节流)和其他文件夹的索引。现在从技术上讲,文件夹本身就是文件,但所有文件都没有“预定义”的顺序,所以我认为这是不可能的。

因此,我认为您首先需要将目录编码为单个字节流(即文件)。命令行版本的 zip 或 winRar 将完成此操作。如果速度是一个问题,可以选择不进行任何实际压缩。可能还有一个 Windows 版本的 tar,或者甚至可能是 Windows 原生版本(.cab 文件?)。我可能会选择 7zip 并使用命令行7z.exe(包含在安装程序中)

http://www.7-zip.org/

因此,您的脚本可以创建单个文件,然后获取该文件的 MD5 哈希值。然后您的脚本可以删除单个文件。这不是您想要的,但我认为这是您的最佳选择。

相关内容