一 为何要进行文件一致性校验?
为了确保你得到的文件是正确的版本,而没有被注入病毒和木马程序。例如我们经常在网上下载软件,而这些软件已经被注入了一些广告和病毒等,如果不进行文件与原始发布商的一致性校验的话,可能会给我们带来一定的损失。
二 文件一致性校验原理
要进行文件的一致性校验,我们不可能像文本文件比较那样,将两个文件放到一起对比,因为很多的时候文件很大。目前最理想的办法就是,是通过加密算法,对文件生成对应的值,通过生成的值与发布商提供的值比较来确认两个文件是否一致。
MD5和SHA1就是目前使用最为广泛的良种加密算法。这两种算法都是基于MD4,但又略有不同。一般来说,SHA1计算速度比较慢,但抗穷举行能也更好。
另外,SHA1是美国国家标准局颁布的标准加密算法。因此,在微软发布的Windows操作系统等光盘中,提供的就是sha1校验码。Google Code社区使用也是sha1验证码。
比较常用的还有GPG。
三 文件一致性校验工具
1) MD5+SHA1
* SUM, LINUX命令,用来获得文件的checksum和blocksize,常被用来检测文件是否被修改过。
* cksum, a Unix command that generates both a 32-bit CRC and a byte count for any given input file.
* md5sum, a Unix command that generates a MD5 sum (commonly used to verify .iso files)