Linux环境中处理文件要保证完整性,可以通过校验来确保文件的完整性。就是根据文件内容生成唯一字符串,MD5校验就是常用的方法之一。华纳云在下文总结了关于MD5概念,如何为文件生成MD5校验和,使用这些校验和验证文件的完整性方法。
MD5标识消息摘要算法5,是一种接受输入(如文件/文本)并产生128位哈希值的哈希算法。MD5一般显示是32字符和十六进制数字,是文件内容所特有的。即便是文件出现了微小变化,也会影响产生不同的MD5哈希值。MD5常用来检查文件完整性,但也存在一些安全加密上的问题,因为它容易受到哈希冲突的影响,如不同文件可能出现相同哈希值。但是这对于基本文件验证来说,MD5还是很有效果。
Linux中给文件生成MD5校验和,使用 md5sum 命令:
md5sum ravi.pdf
运行后会输出如下结果:
a58b0193fcd0b85b1c85ca07899e063d ravi.pdf
其中a58b0193fcd0b85b1c85ca07899e063d属于文件的MD5校验,字符串对应文件内容是唯一的。如果想把校验和保存便于后期使用,可以把输出重定向为:
md5sum ravi.pdf > ravi.pdf.md5
这将创建一个名为ravi.pdf.md5包含 MD5 校验和的文件。
有MD5校验和后,就可以开始用于验证文件是否完整。只要把下载文件和源提供校验和进行对比:
md5sum -c 文件名.md5
这里,filename.md5是包含您要验证的校验和的文件。例如,如果您将校验和保存在 中ravi.pdf.md5,则命令将如下所示:
md5sum-c ravi.pdf.md5
如果文件没有被修改:
ravi.pdf:OK
如果文件遭到修改:
ravi.pdf: FAILED
md5sum: WARNING: 1 of 1 computed checksums did NOT match
这表示文件的内容和生成校验和时内容不一致,文件存在修改或者损坏。
如果是需要进行多文件的校验,如,如果您有一个包含files.md5多个文件校验和的文件,则可以一次验证所有文件:
md5sum -c files.md5
输出将列出files.md5文件中所有文件的验证结果。
MD5也有替代方案,如果需要安全性比MD5更高的方法,可以用其他哈希算法进行替代如SHA-256:比MD5更安全,广泛用于加密应用;SHA-512:甚至比 SHA-256 更强大。
用sha256sum或sha512sum命令来生成这些校验和,就像使用md5sum一样。
例如,要生成 SHA-256 校验和:
sha256sum ravi.pdf
运行该命令后,您将看到如下输出:
a19aea692e680dab5046618a7a9a0dac376bc1e8a8bf90430c2967067d633cf1 ravi.pdf
MD5校验和是 Linux 中验证文件完整性的一种简单有效的方法。md5sum 生成校验和并在稍后验证保文件未被损坏或更改。 MD5 不再被认为是安全的加密方法,但仍然是执行基本文件验证任务的可靠工具。