散列函数
概念
散列函数也叫做HASH函数,主流的散列算法有MD5与SHA。散列函数的主要任务是验证数据的完整性。通过散列函数计算得到的结果叫做散列值,这个散列值也常常被称为数据的指纹。

四大特点
固定大小
以MD5举例,MD5生成的散列值是128bit位。不管多大的一个文件或者多小的文件,通过MD5计算之后,总得到一个固定的128bit位散列值。
雪崩效应
什么叫雪崩效应呢?就是说哪怕你对这个文件做了一点点的,比如说1TB的数据只是改了其中的一个字节,其实这是一个微乎其微的一个非常小的一个修改。但是得到的散列值是雪崩效应,是完全的彻底的不一样的。
单向
通过散列函数可以获取原文件的散列值,但通过散列函数不能得到原文件,是不可逆的操作。
冲突避免
散列值具有唯一性,如果能快速找到其他文件的散列值和目标文件散列值相同,那散列值实际上是没法用了
验证数据的完整性

用户二(接受方),将文件通过散列函数计算出散列值二,和散列值一比较。相同则认为文件未被篡改(假设传输过程中散列值未被篡改)。