什么是 HASH
中文名:散列、哈希。
HashMap的由来是基于Hasing技术(Hasing), Hasing就是将很大的字符串或者任何对象转换成一个用来代表它们的很小的值,这些更短的值就可以很方便的用来方便索引、加快搜索。[引用1]
哈希算法:指一系列加密算法,这些算法遵守了 哈希算法的加密规则,但是各种算法的加密实现方式不同。
哈希算法是将不同长度的数据,进行加密运算,输出一段 128 为的字符串,这些字符串都是唯一的,非重复的。
特点:
- HASH 算法是一个不可逆的单向函数,两个不同的值的 Hash值是不同的,对数据的很小的改动,都会让哈希值产生很大的变化,从而可以轻易发现数据被篡改而纪实采取行动。
- 不重复,不同的值的加密结果都是唯一的。
- 不可逆,得到哈希值,也无法推算出最初的值。
- 抗碰撞能力高,即不同的值计算得到相同哈希值的可能越小越好。
- 好的 散列函数 = 计算简单 + 分布均匀;
代表算法:
- MD5 加密算法;
- SHA1 加密算法;
作用:
信息安全方面:
1、文件校验:
奇偶校验、CRC检查 -> 纠正数据传输中的错误,无防篡改能力;
MD5 加密算法 -> 防止数据被 恶意破坏;
2、数字签名:
HASH算法最终会得到一个唯一值,类似于(数字指纹),可以表示达到签名的唯一性的特点。
3、鉴权协议;
哈希表:
概念:是一种物理存储结构。数据内容,与数据存放地址之间的映射关系。
表现形式:以 键值对 进行保存;
给定任意类型的数据 -> 加工(哈希算法)-> 结果(哈希值:作为键的存储地址)。
引用1:https://zhuanlan.zhihu.com/p/30543726