Linux下md5sum用法

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。

语法

md5sum (选项) (参数)

选项

-b或--binary:  把输入文件作为二进制文件看待。
-t或--text:    把输入的文件作为文本文件看待(默认)。
-c或--check:   用来从文件中读取md5信息检查文件的一致性。(不细说了参见info)
--status:      这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。
-w或--warn:    在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。

示例

1、查看一个字符串的md5sum值

在线查看字符串的md5值地址: https://md5jiami.51240.com/
linux终端里查看出来的md5值都是"32位小写"格式的值

[root@localhost ~]# echo zhanghao | md5sum 
14263084c7a07478c5a9bb634223276c  -

[root@localhost ~]# echo -n zhanghao | md5sum 
1e19be6365d97385f9c623ec0efb354c  -

[root@localhost ~]# echo -n zhanghao | md5sum  | cut -d' ' -f1
1e19be6365d97385f9c623ec0efb354c

命令解释:
md5sum: 显示或检查 MD5(128-bit) 校验和,若没有文件选项,或者文件处为"-",则从标准输入读取。
echo -n : 不打印换行符。(注意: echo -n 后面的-n参数必须加上, 这样算出的字符串的md5值才正确)
cut: cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。 -d 指定与空格和tab键不同的域分隔符。-f1 表示第一个域。

cut命令详细用法:cut命令

2、查看一个文件的md5sum值

[root@localhost ~]# echo zhanghao > test.txt
[root@localhost ~]# md5sum test.txt  #查看文件的md5值
14263084c7a07478c5a9bb634223276c  test.txt

[root@localhost ~]# md5sum test.txt | cut -d' ' -f1
14263084c7a07478c5a9bb634223276c

#产生test.txt这个文件的md5值
[root@localhost ~]# md5sum test.txt  > test.txt.md5
[root@localhost ~]# cat test.txt.md5 
14263084c7a07478c5a9bb634223276c  test.txt
之后就可以通过对比md5值来查看文件是否被篡改

Q.E.D.