这期内容当中小编将会给大家带来有关基于md5的文件完整性检测是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
md5sum是Linux平台下面用来检测文件完整性的给力工具,维基百科是这样来解释 md5sum的:
md5sum是一种计算机程序,用于计算与校验128位MD5哈希值,此处MD5散列值(或校验和)作一个文件的数字指纹使用。理论上看,正如其他散列算法一样,一个MD5哈希值可对应无限个文件,但从现实的角度看,两个不同的文件几乎不可能有相同的MD5哈希值,除非其创建便是刻意为之。一般来说,任何对一个文件的非恶意变更都会导致其MD5哈希值改变,因此md5sum一般用于检查文件完整性,尤其常用于检测在文件传输、磁盘错误或其他无恶意涉入的情况下文件的正确性。
示例:
以linux下shell为环境示例,以下文件皆于同一目录下。
计算校验值并输出至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后的校准值,我们下载重要文件后,同时下载校验文件,在本地进行文件完整性确认。
上述就是小编为大家分享的基于md5的文件完整性检测是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。