Hashdeep:Linux 中用于文件验证的强大工具

作为一名拥有十多年经验的资深Linux用户,我遇到过很多工具,这些工具在系统管理、安全和取证的各个方面都很有帮助。

其中一个我认为特别有用的工具是hashdeep,这是一种强大的命令行实用工具,主要用于文件完整性检查和验证加密散列。

在本文中,我将详细介绍什么是hashdeep、它的工作原理以及如何在Linux环境中有效使用它。

什么是hashdeep?

hashdeep是一种用于计算、比较和验证文件散列的工具,这些散列是通过对文件内容应用散列函数(如SHA-256MD5)创建的唯一标识符。这些散列作为文件的“指纹”。当两个文件具有相同的散列时,意味着它们的内容是相同的。

hashdeep支持多种散列算法,如MD5SHA-1SHA-256,使其在各种使用场景中具有灵活性。

它最常用于:

  • 文件完整性检查:确保文件在时间内未被篡改或损坏。
  • 数字取证:在取证调查中验证文件的完整性。
  • 备份和恢复:验证备份文件的完整性,并确保在恢复过程中数据的一致性。

在Linux中安装hashdeep

在深入使用之前,让我们首先在您的Linux系统上安装hashdeep,它通常可以在大多数发行版的软件包存储库中找到,因此安装很容易。

sudo apt install hashdeep         [On Debian, Ubuntu and Mint]
sudo yum install hashdeep         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/hashdeep  [On Gentoo Linux]
sudo apk add hashdeep             [On Alpine Linux]
sudo pacman -S hashdeep           [On Arch Linux]
sudo zypper install hashdeep      [On OpenSUSE]    
sudo pkg install hashdeep         [On FreeBSD]

安装完成后,您可以开始使用hashdeep来计算和验证文件哈希。

以下是一些最常见的用例。

1. 计算文件的哈希值

hashdeep的最基本用法是计算单个文件或多个文件的哈希值。

hashdeep -c sha256 myqr.png

在这个命令中:

  • -c sha256 指定哈希算法(在本例中为SHA-256)。
  • myqr.png 是您要计算哈希值的文件。

您可以根据需要将sha256 替换为md5sha1 或其他支持的算法。

Calculating File Hashes in Linux

2. 递归地对目录中的文件进行哈希处理

您还可以使用-r 标志(递归)对目录中的所有文件进行哈希处理,包括子目录:

hashdeep -c sha256 -r /path/to/your/directory
Recursively Hashing a Directory

3. 将哈希保存到文件

如果你想将计算出的哈希值保存到文件中以便后续比对,可以使用-o选项指定输出文件:

hashdeep -r ravi > hashes.txt
cat hashes.txt
Save Calculated Hashes to a File

4. 验证文件完整性

hashdeep 最重要的用途之一是验证文件的完整性。如果你已经有一个已知哈希值的列表(例如,来自之前的会话),你可以将当前文件的哈希值与这些已知值进行比对,以查看是否有任何文件被修改。

要做到这一点,使用以下命令验证文件:

hashdeep -a -k hashes.txt -r /home/ravi/ravi

此命令将递归地检查“ravi”目录中的所有文件是否与hashes.txt中列出的哈希值匹配,以便正确验证它们的完整性。

Verifying File Integrity

5. 同时生成多个哈希值

要同时计算多种类型的哈希值(例如 MD5、SHA-1 和 SHA-256),可以使用-c标志指定多个算法:

hashdeep -c md5,sha1,sha256 -r /path/to/your/directory
Calculate Multiple Hashes
结论

hashdeep 是一款多才多艺、强大的文件完整性检查和数字取证工具。它支持多种哈希算法、递归目录哈希和文件比对,使其成为安全、取证或系统管理等领域工作者不可或缺的实用工具。

Source:
https://www.tecmint.com/hashdeep-file-integrity-checker/