1.1 完整性保证
散列函数也叫HASH函数,主要任务是验证数据的完整性。通过散列函数计算得到的结果叫做散列值,这个散列值有时也被称为数据的指纹。常用散列算法有:MD5 SHA-1 SHA-2
1.1.1 散列函数的工作原理
- 对重要文件使用散列函数计算,得到“散列值一”
- 对接收的文件使用散列函数计算,得到“散列值二”
- 比较发现“散列值一”等于“散列值二”
- 由于散列值的唯一性(冲突避免),确定两个文件每个bit都相同
1.1.2 散列函数的特点
- 固定大小:可以接收任意大小的数据,输出固定的散列值。不管原始数据多大,通过MD5计算得到的散列值是128bit,SHA-1输出的长度是160bit。
- 雪崩效应:原始数据哪怕修改一个bit,散列值会发生巨大变化。
- 单向:只可能从原始数据计算得到散列值,不可能从散列值哪怕回复1bit的原始数据。
- 冲突避免(唯一性):几乎不可能找到另一个数据与当前数据计算的散列值相同。