UNIXETC

使用MD5校验文件

目录

md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。

md5校验,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校验算法还有SHA*系列的。

在网络传输时,我们校验源文件获得其md5sum,传输完毕后,校验其目标文件,并对比如果源文件和目标文件md5 一致的话,则表示文件传输无异常。否则说明文件在传输过程中未正确传输。

md5sum示例 #

生成文件md5 #

pi@raspi:~ $ md5sum bs.conf
fcd3e1243d1cd5903d4e38c46671b84f  bs.conf

md5sum校验是根据文件内容为准,与名称无关,意思是即便文件名修改了,但md5校验值应该不会改变,如下:

pi@raspi:~ $ cp bs.conf bs.conf.bak
pi@raspi:~ $ md5sum bs*
fcd3e1243d1cd5903d4e38c46671b84f  bs.conf
fcd3e1243d1cd5903d4e38c46671b84f  bs.conf.bak

根据md5校验文件是否更改 #

一般网上分享的大文件都会附带一个.md5文件,这就是所分享文件的md5值,可以使用-c参数来直接使用.md5文件来检验文件是否完整

pi@raspi:~ $ md5sum bs.conf>bs.conf.md5
pi@raspi:~ $ md5sum -c bs.conf.md5
bs.conf: OK

如上例,将bs.conf的md5值定向到一个bs.conf.md5文件,然后使用md5sum -c bs.conf.md5直接检验相应文件是否完整一致,校验通过的话会输出提示OK,如果文件经过修改,内容已经不一致,则不会通过校验,则会显示FAILED