1、散列值

单向散列函数,可以根据消息内容计算出散列值,散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值:
image.png
image.png

2、单向散列函数的特点

1、根据任意长度的消息,计算出固定长度的散列值
2、计算速度快,能快速计算出散列值
3、消息不同,散列值也不同
image.png
4、具备单向性
image.png

3、单向散列函数(One-way hash function)

3.1、基本概念

单向散列函数,又被称为消息摘要函数(message digest function)、哈希函数。输出的散列值,也被称为消息摘要(message digest)、指纹(fingerpring)。

3.2、常见的几种单向散列函数

3.2.1、MD4、MD5

产生128bit的散列值,MD就是Message Digest的缩写,目前已经不安全。Mac终端上默认可以使用md5命令:$ md5 1.txt $ md5 -s “123”

  1. MD5 (1.txt) = 202cb962ac59075b964b07152d234b70

3.2.2、SHA-1

产生160bit的散列值,目前已经不安全。

3.2.3、SHA-2

包括SHA-256(常见)、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit。

3.2.4、SHA-3

全新标准,还在研发当中。

4、单向散列函数的应用

4.1、防止数据被篡改

举例一:比较昨天和今天的文件是否相同
image.png
举例二:VNC官网 提供安装包散列值,来确认软件完整性

截屏2022-06-02 21.43.03.png

4.2、口令加密

image.png
数据库里存储的用户密码回以摘要的形式保存,避免数据库信息泄漏。