一、哈希函数/散列算法文档
1.1、哈希函数介绍
哈希函数(Hash function),又称散列函数、散列算法,它是一种不可逆的信息摘要算法,具体实现就是把任意长度的输入信息通过哈希算法变成固定长度的输出信息。
1.2、哈希碰撞与输入输出
哈希碰撞:由于Hash是无限集合的数据向有限集合的数据进行单方向映射,所以难免会出现,对不同的数据可能得到相同的哈希值,这种现象称为哈希碰撞。因为哈希碰撞无法避免,所以要尽量降低这种碰撞成功的概率,以下为哈希值输入输出的两种情况:
- 输入数据相同,则输出的结果值相同;
- 输入数据不同,则有小概率输出的结果值相同。
1.3、哈希函数的特点
哈希函数没有特定的公式,一般只要符合散列算法的要求即可,只要符合散列算法的要求都可以称之为哈希算法,以下为哈希函数的主要特点:
- 无论输入的消息有多长,计算出来的哈希值总是固定的;
- 哈希计算的输出结果必须是随机和没有规律的;
- 哈希函数必须是不可逆的单向函数,无法从输出的哈希值中推算出输入信息。
二、哈希函数的具体应用
一般相关的系统或组件都会自带哈希函数,我们可以使用其提供的HASH函数或HMAC函数对文本进行相关处理。通常情况下,不同的需求使用不同安全系数的散列算法,常见的安全哈希算法分类为:MD算法、SHA算法、MAC算法。
2.1、MD算法
MD(Message Digest Algorithm,消息摘要算法ÿ