1、散列值
单向散列函数,可以根据消息内容计算出散列值,散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值:
2、单向散列函数的特点
1、根据任意长度的消息,计算出固定长度的散列值
2、计算速度快,能快速计算出散列值
3、消息不同,散列值也不同
4、具备单向性
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”
MD5 (1.txt) = 202cb962ac59075b964b07152d234b70
3.2.2、SHA-1
3.2.3、SHA-2
包括SHA-256(常见)、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit。
3.2.4、SHA-3
4、单向散列函数的应用
4.1、防止数据被篡改
举例一:比较昨天和今天的文件是否相同
举例二:VNC官网 提供安装包散列值,来确认软件完整性
4.2、口令加密
数据库里存储的用户密码回以摘要的形式保存,避免数据库信息泄漏。