日常开发中经常需要我们计算一段数据或文件的MD5值,网络上有很多网页版的在线工具能实现该功能,但实际上Linux中已经自带了包括MD5、SHA等各种散列算法计算的命令行工具了,直接在命令行中使用这些工具更加方便快捷。
计算字符串Hello, world!
的MD5值:
echo -n 'Hello, world!' | md5sum
输出:
6cd3556deb0da54bca060b4c39479839 -
输出内容中,前面是MD5计算结果,后面的短横线-
表示该值的源数据来自标准输入。
计算文件1.txt
中内容的MD5值:
md5sum 1.txt
输出:
6cd3556deb0da54bca060b4c39479839 1.txt
输出内容中,前面是MD5计算结果,后面是MD5来自的文件名。
假设我们有一个image.jpg
,我们要将该文件通过网络发送给朋友,但为了确保他收到的文件没有损坏,我们可以随着该文件再附带一个MD5计算结果文件。
md5sum image.jpg > image.md5
对方收到image.jpg
和image.md5
文件后,可以直接运行以下命令进行校验:
md5sum -c image.md5
注:md5sum
工具输出内容中有文件名,因此md5sum -c
运行时工具可以根据此文件名找到文件。
如果输出image.jpg: OK
则代表校验成功,如果校验失败则可能产生如下输出:
image.jpg: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
此外,md5sum
也支持多个文件计算MD5值和验证,我们可以使用类似md5sum file1.txt file2.txt file3.txt > files.md5
的形式为多个文件生成MD5值并记录到文件中,使用md5sum -c
验证文件则和之前相同。
对于SHA1、SHA224、SHA256、SHA384等,也都有对应的sha1sum
、sha224sum
、sha256sum
、sha384sum
命令,用法和md5sum
一致。