当前位置:网站首页 > 技术博客 > 正文

linux文件md5



在下载文件时,尤其是从网站安装文件时,验证下载是否有效是个好主意。 网站通常会为每个文件显示一个散列值,以便确保下载正确完成。 在本文中,我们将讨论可用于验证下载的md5sum工具。 其他两个工具sha256sum和sha512sum的工作方式与md5sum相同。

md5sum命令使用MD5算法打印给定文件的32个字符(128位)校验和。 以下是这个命令行工具的命令语法:

md5sum [OPTION]... [FILE]...

以下是md5sum的手册页是如何解释的:

Print or check MD5 (128-bit) checksums.

下面的Q&A样式的例子会给你一个关于md5sum基本用法的更好的概念。

注意:在我们的示例中,我们将使用三个名为file1.txt,file2.txt和file3.txt的文件作为输入文件。 下面列出了每个文件中的文本。

FILE1.TXT:

hi hello how are you thanks.

FILE2.TXT:

hi hello to you I am fine Your welcome!

file3.txt:

hallo Guten Tag Wie geht es dir Danke.

使用没有任何选项的命令来显示散列值和文件名。

md5sum file1.txt

以下是我们系统上生成的这个命令的输出:

[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$

输出也可以使用--tag选项以BSD格式显示。

md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1 [Documents]$

md5sum命令可以一次验证多个文件。 我们将添加file2.txt和file3.txt来演示功能。

如果将散列写入文件,则可以使用该文件检查是否有任何文件已更改。 在这里,我们将文件的散列写入文件散列,然后使用它来验证没有任何文件已经改变。

md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes [Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$ 

现在我们将更改file3.txt,在文件末尾添加一个感叹号,然后重新运行该命令。

echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$ 

你可以看到file3.txt已经改变了。

如果您有许多文件需要检查,您可能只想显示已更改的文件。 使用“--quiet”选项,md5sum将只列出已经改变的文件。

md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$

您可能想要在脚本中使用md5sum。 使用“--status”选项,md5sum将不会打印任何输出。 相反,如果没有更改,状态码将返回0,如果文件不匹配,则返回1。 以下脚本hashes.sh将在状态码中返回1,因为文件已经更改。 脚本文件如下:

sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [lion@ornatecandy Documents]$ 

当比较文件时,md5sum可以让你知道是否有无效的散列。 要警告你,如果任何散列值不正确,你可以使用--warn选项。 对于最后一个例子,我们将使用sed在第三行的开头插入一个额外的字符。 这将改变文件哈希中的哈希值,使其无效。

sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes

这表明第三行有一个无效的散列。

[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$ 

md5sum是一个简单的命令,可以快速验证一个或多个文件,以确定是否有任何文件已经从原始文件更改。 有关md5sum的更多信息,请参见手册页。

版权声明


相关文章:

  • 当前的 arm 系列内核主要有哪些系列?2025-05-12 14:30:05
  • jieba库pycharm2025-05-12 14:30:05
  • 迈迪工具集v5.5 solidworks插件2025-05-12 14:30:05
  • 灰度持仓币种最新2025-05-12 14:30:05
  • echarts方法2025-05-12 14:30:05
  • java jvm 内存模型2025-05-12 14:30:05
  • c哈夫曼树代码2025-05-12 14:30:05
  • zip in and out2025-05-12 14:30:05
  • ldconfig is not a symbolic link2025-05-12 14:30:05
  • 在线代码编写2025-05-12 14:30:05