基于md5的文件完整性检测

      md5sumLinux平台下面用来检测文件完整性的给力工具,维基百科是这样来解释 md5sum的:

      md5sum是一种计算机程序,用于计算与校验128MD5哈希值,此处MD5散列值(或校验和)作一个文件的数字指纹使用。理论上看,正如其他散列算法一样,一个MD5哈希值可对应无限个文件,但从现实的角度看,两个不同的文件几乎不可能有相同的MD5哈希值,除非其创建便是刻意为之。一般来说,任何对一个文件的非恶意变更都会导致其MD5哈希值改变,因此md5sum一般用于检查文件完整性,尤其常用于检测在文件传输、磁盘错误或其他无恶意涉入的情况下文件的正确性。

 示例:

linuxshell为环境示例,以下文件皆于同一目录下。

计算校验值并输出至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

注:在校验文件内,各个md5校验值与需比较的文件名间必须有两个空格,文件内换行也应为UNIX换行符(LF),否则无法进行。

检查单个MD5

echo "595f44fec1e92a71d3e9e77456ba80d1  filetohashA.txt" | md5sum -c

filetohashA.txt: OK

   

     在实际的工作中,我们经常需要确定同事给的某个重要文件在拷贝或者网络传输过程中是否出现了数据的丢失,或者数据的反转,我们可以借助MD5工具来完成数据的完整性检测,由于我们公司提供给客户的资料都是通过网络下载的,所以对重要的文件,比如源代码,运行的二进制进行文件校验的工作是必须的,用户下载文件到本地后,第一件事情就是校验文件传输的准确性,也可以判断文件是否被别人不小心进行了修改。

  对于单个文件的判断相对比较简单,使用  md5sum  A > test.txt 生成校验码,然后 md5sum -c test.txt  校验文件的完整性,在我的工作中经常对多个重要文件校验,这样我们就可以打开获得的校验文件,然后使用:  

echo "595f44fec1e92a71d3e9e77456ba80d1  filetohashA.txt" | md5sum -c

 命令方式逐步对分布在不同文件夹内的重要文件进行确认,当然也可以把要校验的文件拷贝到一个文件夹内,使用:

$ md5sum -c hash.md5

命令方式一次性的完成校验了。

下面的图片是TI SDK下载页面对重要文件进行md5sum后的校准值,我们下载重要文件后,同时下载校验文件,在本地进行文件完整性确认。

 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值