HASH & ENCRYPT

Hash 算法 和 Encrypt 算法的区别和对应的使用场景。

哈希(Hash)与加密(Encrypt)的区别

Hash 是将目标文本转换成具有相同长度的、不可逆的杂乱字符串,这个杂乱字符串也叫做消息摘要;Encrypt 是将目标文本转换为具有不同长度的、可逆的密文。

1、任何目标文本经过 Hash 算法后得到的都是相同长度的消息摘要,而 Encrypt 得到的密文的长度是和明文的长度有关。

2、Hash 是不可逆的,Encrypt 是可逆的。

一个哈希算法 $R = H(S)$ 是一个多对一映射,给定目标文本 S,H 可以将其唯一映射为 R,并且对于所有 S,R 具有相同的长度。由于是多对一映射,所以H不存在逆映射 $S = H^{-1}(R)$ 使得 R 转换为唯一的 S。

一个加密算法 $R=E(S,K_E)$ 是一个一一映射,其中第二个参数叫做加密密钥,E 可以将给定的明文 S 结合加密密钥 Ke 唯一映射为密文 R,并且存在另一个一一映射 $S=D(R,K_D)$,可以结合 Kd 将密文 R唯一映射为对应明文 S,其中 Kd 叫做解密密钥。

Hash 算法

Hash 算法的特点:

Hash 算法的主要应用

Hash 算法主要应用于消息摘要和签名,主要是对消息的完整性进行校验。

常用的 Hash 算法的实现

对称加密算法

对称加密是指,在 加密解密 的过程中使用的密钥是相同的。

常用的对称加密算法

非对称加密算法

非对称加密是指,在 加密解密 的过程中是使用两个不同的密钥,加密 过程使用的是 共钥解密 的过程中使用的是 私钥

常用的非对称加密算法

HMAC算法 ????

参考1 参考2