所谓文件完整性校验就是对文件“验明正身”。就是说检查文件的是否完整。那么文件是怎么被破坏了完整性呢?
第一种是感染病毒,你所下载的软件安装包或者某个执行程序感染了病毒那么你的这个文件完整性就被破坏了,还有就是被别有用心的人植入木马或病毒,还有就是传输故障。
文件完整性检验最常用的方法是使用基于“散列函数”校验算法,也叫哈希算法,一种计算机算法,英文叫Hash,散列算法就是可以把任意尺寸的数据,转变为一个固定尺寸的小数据。在散列函数中,如果两个不同文件具有相同的特征值,则这种就是碰撞。特征值长度越短,碰撞概率就高,不过越增加特征值长度就越降低了校验可用性。
散列函数的算法:
CRC32 32比特(4字节) MD5 128比特(16字节) SHA1 160(20字节)
散列函数的特点:
不可逆性,确定性
散列函数的碰撞类型:
随机碰撞,人为碰撞