内容纲要

软件简介

md5deep是用来计算文件的md5校验码的工具,比传统的md5sum指令好用.

# md5deep -h

md5deep version 4.4 by Jesse Kornblum and Simson Garfinkel.
$ md5deep [OPTION]... [FILES]...
See the man page or README.txt file or use -hh for the full list of options
-p <size> - 分段模式。文件被分成块进行散列
-r        - 递归模式。遍历所有子目录
-e        - 显示每个文件剩余的估计时间
-s        - 静音模式。抑制所有错误消息
-z        - 在哈希之前显示文件大小
-m <file> - 启用匹配模式。见README /手册页
-x <file> - 启用负匹配模式。见README /手册页
-M和-X与-m和-x相同,但也打印每个文件的哈希值
-w        - 显示哪个已知文件生成了一个匹配
-n        - 显示不匹配任何输入文件的已知哈希值
-a和-A将单个哈希值添加到正匹配集或负匹配集
b        - 只打印文件名;忽略所有路径信息
-l        - 打印文件名的相对路径
-t        - 打印GMT时间戳(ctime)
-i/I <size> - 只处理小于或大于SIZE的文件
-v        - 显示版本号并退出
-d        - DFXML输出;-u -转义Unicode;- w FILE -写入文件。
-j <num>  - 使用num线程(默认48)
-Z - 分诊模式;- h -帮助;-hh -完全帮助

man page

MD5DEEP(1) 美国空军 MD5DEEP(1)
姓名
md5deep – 计算和比较 MD5 消息摘要
sha1deep – 计算和比较 SHA-1 消息摘要
sha256deep – 计算和比较 SHA-256 消息摘要
sha3deep – 计算和比较 SHA-3-256 消息摘要
Tigerdeep – 计算和比较 Tiger 消息摘要
whirlpooldeep -计算和比较 Whirlpool 消息摘要

概要

md5deep -v | -V | -h
md5deep [-m|-M|-x|-X <file>] [-a|-A <hash>] [-f <file>] [-p <size>] [-i <size>] [-tnwzresS0lbkqZud] [-F <bum>] [-o <fbcplsde>] [-j <num>] [[文件]

说明
计算任意数量文件的哈希值或消息摘要,同时可选地递归挖掘目录结构。还可以获取已知散列的列表并显示其散列匹配或不匹配任何已知散列的输入文件的文件名。错误报告为标准错误。如果未指定 FILES,则从标准输入读取。

-p <大小>
分段模式。在散列之前将文件分成块。可以使用 IEC 乘数 b、k、m、g、t、p 或 e 指定块。(千万不要说作者没有提前计划!)此模式不能与 -z 模式一起使用。
-i|-I <尺寸>
尺寸阈值模式。只有小于给定阈值的哈希文件。在 -i 模式下,简单地忽略那些大于阈值的文件。在 -I 模式下,显示所有文件,但对大于阈值的文件散列使用星号。可以使用 IEC 乘数 b、k、m、g、t、p 或 e 指定尺寸。
-r
启用递归模式。遍历所有子目录。请注意,递归模式不能用于检查给定文件扩展名的所有文件。例如,调用 md5deep -r .txt 将检查目录中以 .txt 结尾的所有文件 。
-e
显示进度指示器和正在处理的每个文件的剩余时间估计。大于 4GB 的文件的时间估计在 Windows 上不可用。此模式不能与 th -p 模式一起使用。
-m <文件>
启用匹配模式。给出的文件应该是已知哈希的列表。一次检查一个输入文件,仅输出与已知哈希列表匹配的那些文件。可以多次使用此标志来添加多组已知散列。已知哈希列表的可接受格式是普通格式(例如由 md5deep 或 md5sum 生成的格式)、Hashkeeper 文件、iLook 和美国国家技术标准研究所生成的国家软件参考库 (NSRL)。
如果标准输入与 -m 标志一起使用,如果输入与已知散列列表中的散列之一匹配,则显示“stdin”。如果散列不匹配,则程序不显示输出。
此标志不能与 -x、-X 或 -A 标志一起使用。请参阅下面的“UNICODE 支持”部分。
-x <文件>
与上面的 -m 标志相同,但进行负匹配。也就是说,只显示那些不在已知哈希列表中的文件。
此标志不能与 -m、-M 或 -a 标志一起使用。请参阅下面的“UNICODE 支持”部分。
-M和-X <文件>
与上面的 -m 和 -x 相同,但显示匹配(或不匹配)已知哈希列表的每个文件的哈希。
-a <哈希>
将单个哈希添加到用于匹配模式的已知哈希列表中,如果尚未启用,则启用匹配模式。添加单个散列本身不能像 -M 标志那样用于打印匹配文件的散列。当与 -w 标志一起使用时,显示的文件名只是在命令行上提交的哈希值。
此标志不能与 -x、-X 或 -A 标志一起使用。
-A <哈希>
与上面的 -a 相同,但进行负匹配。此标志不能与 -m、-M 或 -A 标志一起使用。
-f <文件>
从指定的文件中获取要散列的文件列表。假设每一行是一个文件名。此标志每次调用只能使用一次。如果第二次使用它,第二个实例将破坏第一个实例。
请注意,您仍然可以使用其他标志,例如 -m 或 -x 模式,并在命令行上提交其他文件。
-w
在任何匹配模式(-m、-M、-x 或 -X)期间,显示与输入文件匹配的已知散列的文件名。请参阅下面的“UNICODE 支持”部分。
-t
以 GMT 格式显示每个结果的时间戳。在 Windows 上,此时间戳将是文件的创建时间。在所有其他系统上,它应该是文件的更改时间。
-n
在任何匹配模式(-m、-M、-x 或 -X)期间,仅显示与任何输入文件都不匹配的任何已知散列的文件名。
-s
启用静音模式。所有错误消息都被抑制。
-S
类似于静默模式,但仍会在已知散列列表中对格式不正确的散列显示警告。
-z
启用文件大小模式。用十位数字表示处理的每个文件的大小在哈希前面。如果文件大小大于 9999999999 字节(约 9.3GB),程序会显示大小为 9999999999。
-q
静音模式。输出中省略了文件名。每个散列在换行符之前仍然跟有两个空格。
-Z
以分类格式生成输出。每行包含文件的大小、制表符、前 512 字节的散列、制表符、完整文件的散列、制表符和文件名。这些值旨在按特异性递增的顺序。也就是说,两个大小不同的文件不可能匹配。这是一个快速比较,应该首先完成。接下来,具有不同部分散列的两个文件不可能匹配。这通常比散列整个文件更快。最后,如果这两个部分对齐,那么值得阅读和散列整个文件。
-0
使用 NULL 字符 (/0) 来终止每一行而不是换行符。用于处理带有奇怪字符的文件名。
-l
启用相对文件路径。不是打印每个文件的绝对路径,而是显示命令行上指示的相对文件路径。此标志不能与 -b 标志一起使用。
-b
启用裸模式。从显示的文件名中去除任何前导目录信息。此标志不能与 -l 标志一起使用。
-k
启用星号模式。一个星号被插入来代替文件名和哈希之间的第二个空格,就像 md5sum 在其二进制 (-b) 模式下一样。
-C
启用逗号分隔值输出或 CSV 模式。此模式具有从 -z 模式中删除 10 位大小限制的副作用。另请注意,在 CSV 模式下不会显示 -k 模式中的星号。
-o
启用专家模式。允许用户指定处理哪些(以及仅哪些)类型的文件。目录处理仍由 -r 标志控制。允许的专家模式选项有:
f – 常规文件
b – 块设备
c – 字符设备
p – 命名管道
l – 符号链接
s – 套接字
d – Solaris Doors
e – Windows PE 可执行文件
-jnn
控制多线程。默认情况下,程序将创建一个生产者线程来扫描文件系统,并为每个 CPU 内核创建一个散列线程。多线程导致输出文件名的顺序不确定,因为散列需要更长时间的文件在散列时会被延迟。如果需要确定性顺序,请指定-j0以禁用多线程
-d
以数字取证 XML (DFXML) 格式输出。
-u
引用 Unicode 输出。例如,雪人显示为U+C426。
-F
指定用于读取文件的输入模式。默认值为 -Fb(缓冲 I/O),它使用 fopen() 读取文件。指定 -Fu将使用无缓冲 I/O 并使用 open() 读取文件。指定-Fm将使用内存映射 I/O,这在某些平台上会更快,但(当前)不适用于产生 I/O 错误的文件。
-H
显示帮助屏幕并退出。
-v
显示版本号并退出。
-V
显示版权信息并退出。
统一码支持
从版本 3.0 开始,该程序支持 Microsoft Windows 系统上文件名中的 Unicode 字符,用于在命令行上使用通配符(例如
)指定 的文件名、使用文件的-f指定的文件进行散列,以及使用-从目录中读取的文件r 选项。

默认情况下,所有程序输入和输出都应采用 UTF-8。该程序会自动将其转换为 UTF-16 以打开文件)。

在 Unix/Linux/MacOS 上,您应该使用支持 UTF-8 的终端模拟器,文件名中的 UTF-8 字符将被正确显示。

在 Windows 上,程序不会在控制台上显示 Unicode 字符。您必须将输出重定向到一个文件并使用写字板(可以显示 Unicode)打开该文件,或者您必须指定-u 选项以使用标准U+XXXX表示法引用 Unicode 。

当前,包含已知哈希的文件的文件名可能无法指定为 unicode 文件名,但您可以使用制表符完成或星号指定名称(例如 md5deep -m *.txt,其中只有一个文件具有 .txt 扩展名)。

返回值
根据操作的成功和任何匹配操作的状态返回一个按位的值。

0
成功。请注意,即使程序遇到读取错误、权限被拒绝错误或在非递归模式下找到目录时,它也会认为自己成功。
1
未使用的哈希。在任何匹配模式下,如果一个或多个已知散列与任何输入文件不匹配,则返回此值。
2
无与伦比的输入。在任何匹配模式下,如果一个或多个输入值与任何已知哈希不匹配,则返回此值。
64
用户错误,例如尝试同时进行正匹配和负匹配。
128
内部错误,例如内存损坏或未捕获的循环。所有内部错误都应该报告给开发者!请参阅下面的“报告错误”部分。
作者
md5deep 由 Jesse Kornblum、research@jessekornblum.com 和 Simson Garfinkel 编写。

已知问题
使用 -r 标志不能用于递归处理目录中给定扩展名的所有文件。这是一个功能,而不是一个错误。如果您需要这样做,请使用find(1)命令。

报告错误
我们非常重视所有错误报告。任何危及该程序法医完整性的错误都可能对人们的生活造成严重后果。提交错误报告时,请包括问题的描述、您是如何发现问题的以及您的联系信息。

在上面的地址向作者发送错误报告。

版权
该计划是美国政府的一项工作。根据 17 USC 105,版权保护不适用于美国政府的任何作品。该程序是公共域。本程序的某些部分包含根据通用公共许可证 (GPL) 条款获得许可的代码。这些部分保留其原始版权和许可。有关更多详细信息,请参阅文件复制。

此程序没有任何保证;甚至不是为了特定目的的适销性或适合性。

另见
更多信息和安装说明可以在 README 文件中找到。可以在项目主页上找到这两个文档的当前版本:http : //md5deep.sourceforge.net/

MD5 规范 RFC 1321 可从
http://www.ietf.org/rfc/rfc1321.txt 获得

SHA-1 规范 RFC 3174 可从
http://www.faqs.org/rfcs/rfc3174.html 获得

SHA-256 规范 FIPS 180-2 可从
http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf 获得

SHA-3-256 规范可从
http://keccak.noekeon.org/ 获得

Tiger 规范可在
http://www.cs.technion.ac.il/~biham/Reports/Tiger/ 获得

Whirlpool 规范可在
http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html 获得

安装

[root@test-host ~]# yum -y install md5deep

简单使用

和md5sum对比

[root@test-host ~]# md5deep /etc/passwd
fc6a975eb7ac26ddec24e72c95c3c935  /etc/passwd
[root@test-host ~]# md5sum /etc/passwd 
fc6a975eb7ac26ddec24e72c95c3c935  /etc/passwd