在Linux中了解如何使用MD5校验和生成和验证文件

在本文中,我们将向您展示如何为文件生成哈希值,为以后在Linux中验证文件完整性创建一个校验和。

校验和是用作在数据正确数字的总和,其可以稍后用于存储或传输期间检测数据中的错误的一个数字。MD5( 消息摘要5)的款项可以用作校验和,以验证文件或字符串在Linux的文件系统

MD5校验和是128位的字符串(数字和字母)运行对特定文件的MD5算法得出。 MD5算法是一个流行的散列函数,它生成128位消息摘要,称为散列值,当为特定文件生成一个时,无论其生成的次数如何,它在任何机器上都保持不变。

通常很难找到导致相同字符串的两个不同的文件。 因此,你可以使用的md5sum通过确定你下载的文件或ISO是位对位远程文件或ISO的副本,检查数字数据的完整性。

推荐阅读: 进度-为(CP,MV,DD,tar等)监测进展的Linux命令

在Linux中,md5sum程序计算并检查文件的MD5哈希值。 它是GNU Core Utilities包的组成部分,因此预装在大多数(如果不是所有)Linux发行版上。

看看的内容/etc/group保存为以下groups.cvs。

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

该命令MD5SUMS下面如下会生成该文件的哈希值:

$ md5sum groups.csv
bc527343c7ffc103111f3a694b004e2f  groups.csv

当您尝试通过删除第一线,改变文件的内容root:x:0:然后第二次运行命令,尝试观察哈希值:

$ md5sum groups.csv
46798b5cfca45c46a84b7419f8b74735  groups.csv

你会注意到哈希值现在已经改变,表明文件的内容被改变。

现在,放回文件的第一行root:x:0:重命名为group_file.txt,并运行如下命令再次生成散列值:

$ md5sum groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups_list.txt

从上面的输出,即使文件已被重命名,其哈希值仍然是相同的,具有其原始内容。

重要提示 :MD5校验和只验证与该文件内容,而不是文件名/工作。

该文件groups_list.txtgroups.csv的重复,因此,试图在同一时间,以产生所述文件的散列值如下。

你会看到他们都有相等的哈希值,这是因为他们有完全相同的内容。

$ md5sum groups_list.txt  groups.csv 
bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

您可以将文件的哈希值重定向到文本文件并存储,与其他人共享。 对于上面的两个文件,您可以发出以下命令将生成的哈希值重定向到文本文件中供以后使用:

$ md5sum groups_list.txt  groups.csv > myfiles.md5

要检查自创建校验和后文件未被修改,请运行下一个命令。 您应该能够查看每个文件的名字伴随着“OK”。

建议阅读: 在Linux的内存使用情况显示,前15道工序

-c--check选项告诉MD5SUMS命令来读取文件MD5和检查。

$ md5sum -c myfiles.md5
groups_list.txt: OK
groups.csv: OK

请记住,创建校验后,不能重命名这些文件,否则你会得到一个“ 没有这样的文件或目录 ”的错误,当您尝试验证与新名称的文件。

例如:

$ mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c  myfiles.md5
错误信息
md5sum: groups_list.txt: No such file or directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

这个概念也适用于琴弦一样,在下面的命令, -n手段不输出其后的换行符:

$ echo -n "Howtoing How-Tos" | md5sum - 
afc7cb02baab440a6e64de1a5b0d0f1b  -
$ echo -n "Howtoing How-To" | md5sum - 
65136cb527bff5ed8615bd1959b0a248  -

在本指南中,我向您展示了如何为文件生成哈希值,创建一个校验和,以便以后在Linux中验证文件完整性。 尽管已经检测到MD5算法中的安全漏洞,但是MD5哈希值仍然有用,尤其是如果您信任创建它们的那一方。

因此,验证文件是系统上文件处理的一个重要方面,以避免下载,存储或共享损坏的文件。 最后但并非最不重要的,像往常通过下面的评论表达到我们寻求任何帮助,你可以提出一些重要的建议,以改善这篇文章。