#num1 Linux命令详解:md5sum 1、简介 MD5算法一般用于检查文件完整性,尤其常用于检测在(网络)文件传输、拷贝、磁盘错误或其他无恶意涉入的情况下文件的正确性。MD5全称报文摘要算法(Message-DigestAlgorithm 5)[RFC 1321],该算法对任意长度的信息进行逐位计算,产生一个二进制长度128位(十六进制长度32位)的校验和(或称“指纹”,“报文摘要”),不同的文件内容生成相同的报文摘要的概率是极其小的。 在Linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum工具,可以在命令行终端直接执行。   2、命令格式 md5sum [OPTION]... [FILE]...   命令选项 -b或 --binary:以二进制模式读入文件; -t或 --text:以文本文件模式读入文件(默认); -c或 --check:用来从文件中读取md5信息检查文件的一致性; --status:该选项与check一起使用,在check时不输出,根据返回值表示检查结果; -w或 --warn:在check时,检查输入的md5信息有没有非法行,若有则输出相应信息。   4、实例演示 1)生成一个文件的md5值,如下所示: [root@HLZ test]# ll total 16 -rw-r--r--1 root root 240 Sep 4 22:26 aaa_pkg.tgz -rw-r--r--1 root root  11 Sep 4 22:01 aaa.txt -rw-r--r--1 root root  46 Sep 4 22:24 bbb.log drwxr-xr-x2 root root 4096 Sep 4 22:24 checksum [root@HLZ test]# [root@HLZ test]# md5sum aaa.txt > checksum/aaa.md5 这样,就生成了文件aaa.txt的md5校验文件aaa.md5,打开可以看到如下内容: [root@HLZ test]# cat checksum/aaa.md5 d700cf9bb133858df4d3e0486848be78 aaa.txt   2)md5sum支持多个文件输入或通配符 [root@HLZ test]# md5sum aaa.txt bbb.log aaa_pkg.tgz > checksum/all.md5 [root@HLZ test]# cat checksum/all.md5 d700cf9bb133858df4d3e0486848be78 aaa.txt fff62b77988e5b9d83a2872bb2247b21 bbb.log 36eb58b2563f91baf61531aef126eea6 aaa_pkg.tgz [root@HLZ test]# md5sum aaa* > checksum/aaa_all.md5 [root@HLZ test]# cat checksum/aaa_all.md5 36eb58b2563f91baf61531aef126eea6 aaa_pkg.tgz d700cf9bb133858df4d3e0486848be78 aaa.txt   3)文件内容校验 [root@HLZ test]# md5sum -c ./checksum/aaa.md5 aaa.txt:OK [root@HLZ test]# md5sum -c ./checksum/all.md5 aaa.txt:OK bbb.log:OK aaa_pkg.tgz:OK [root@HLZ test]# vi bbb.log     ---修改bbb.log文件内容,添加7个0 abceefghijklmnopqr0000000stuvwxyz1234567890987654321 [root@HLZ test]# md5sum -c ./checksum/all.md5 aaa.txt:OK bbb.log: FAILED aaa_pkg.tgz:OK md5sum: WARNING: 1 of 3 computed checksums did NOT match [root@HLZ test]#   4)文件路径的考虑($PWD即当前路径/home/hanlzh/test/) [root@HLZ test]# pwd /home/hanlzh/test [root@HLZ test]# md5sum $PWD/aaa.txt > ./checksum/aaa.md5 [root@HLZ test]# cat checksum/aaa.md5 d700cf9bb133858df4d3e0486848be78 /home/hanlzh/test/aaa.txt [root@HLZ test]# md5sum -c ./checksum/aaa.md5 /home/hanlzh/test/aaa.txt:OK [root@HLZ test]# cd .. [root@HLZ hanlzh]# md5sum -c ./test/checksum/aaa.md5 /home/hanlzh/test/aaa.txt:OK   4)文件缺失或不存在情况 [root@HLZ test]# rm -rf aaa_pkg.tgz [root@HLZ test]# md5sum -c ./checksum/aaa_all.md5 md5sum: aaa_pkg.tgz: No such file or directory aaa_pkg.tgz: FAILED open or read aaa.txt:OK md5sum: WARNING: 1 of 2 listed files could not be read 5、总结 特殊说明 1)md5sum是校验文件内容,与文件名是否相同无关; 2)md5sum是逐位校验,所以文件越大,校验时间越长。   md5校验,可能极小概率出现不同的文件生成相同的校验和,比md5更安全的校验算法还有SHA*系列,如sha1sum/sha224sum/sha256sum/sha384sum/sha512sum等等,基本用法与md5sum命令类似,详情可通过man sha1sum查询。 以下仅简单列举一例,不再赘述。 [root@HLZ test]# sha512sum aaa.txt > aaa.sha512 [root@HLZ test]# cat aaa.sha512 8edb9790359ef641112fa85eea5c8f09b7330564a58cddf39aef66006f32454a8879b1e63d9f667ecf86264d4d5b6a602a4c94c79d962ec755345a3837217f89 aaa.txt [root@HLZ test]# [root@HLZ test]# sha512sum -c ./aaa.sha512 aaa.txt:OK ----------------- #num2 linux md5sum 的用法 在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。md5sum是一种计算机程序,用于计算与校验RFC 1321所描述的128位MD5哈希值,此处MD5散列值(或校验和)作一个文件的数字指纹使用。 两个不同的文件几乎不可能有相同的MD5哈希值,除非其创建便是刻意为之。一般来说,任何对一个文件的非恶意变更都会导致其MD5哈希值改变,因此md5sum一般用于检查文件完整性,尤其常用于检测在文件传输、磁盘错误或其他无恶意涉入的情况下文件的正确性。在多数Unix、Linux与其他类Unix操作系统或兼容层都默认安装了md5sum工具,而其他操作系统(包括Microsoft Windows与BSD的变体Mac OS X)也有相似的工具,直接在命令行终端直接运行。 1、使用md5sum来产生指纹(报文摘要)命令如下: md5sum filename > filename.md5 或者 md5sum filename >>filename.md5 也可以把多个文件的报文摘要输出到一个md5文件中,这要使用通配符*,比如某目录下有几个iso文件,要把这几个iso文件的摘要输出到iso.md5文件中,命令如下: md5sum *.iso > iso.md5 2、使用md5报文摘要验证文件,方法有二: 把下载的文件file和该文件的file.md5报文摘要文件放在同一个目录下,然后用如下命令进行验证: md5sum -c file.md5 然后如果验证成功,则会输出:正确 win下也有md5sum软件, 大家可以找找哦。 例子:计算校验值并输出至hash.md5 $ md5sum filetohashA.txt filetohashB.txt filetohashC.txt > hash.md5 所得文件 文件内包括了哈希值和对应的文件名。 $ cat hash.md5 595f44fec1e92a71d3e9e77456ba80d1 filetohashA.txt 71f920fa275127a7b60fa4d4d41432a3 filetohashB.txt 43c191bf6d6c3f263a8cd0efd4a058ab filetohashC.txt 以MD5值校验文件 $ md5sum -c hash.md5 filetohashA.txt: OK filetohashB.txt: OK filetohashC.txt: OK 说白了,就是验证文件有没有被修改过 --------------------- 作者:a1232345 来源:CSDN 原文:https://blog.csdn.net/a1232345/article/details/46348227 版权声明:本文为博主原创文章,转载请附上博文链接!