散列算法(签名算法)


散列算法描述

原理

采用某种散列函数,输入不同长度的明文,得到相同的长度的密文,明文的微小变化都能引起密文的巨大变化。其实哈希散列算法不算是真正的加密,而是生成对应明文的指纹信息,用来校验数据的完整性。

安全性

不能通过密文反推明文,通常作为数据的完整性校验。

使用场景

生成信息摘要,验证信息的完整性。

代表算法

MD2、MD4、MD5、PANAMA、SHA-0、SHA-1、SHA-256、SHA-512 等;

MD5 算法

<aside> 💡 MD5 是一种不可逆的 消息摘要算法 ,目前尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的 128bits 长度的串,通常表达为 32 个 16 进制字符。

</aside>

SHA1 算法

<aside> 💡 SHA1 是和 MD5 一样流行的消息摘要算法,然而 SHA1 比 MD5 的 安全性更强。对于长度小于 2^64 位的消息,SHA1 会产生一个 160bits(通常表达为 40 个 16 进制字符)的 消息摘要。

</aside>

HMAC 算法

/cal

<aside> 💡 HMAC 是密钥相关的 哈希运算消息认证码(Hash-based Message Authentication Code),HMAC 运算利用 哈希算法(MD5、SHA1 等),以 一个密钥 和 一个消息 为输入,生成一个 消息摘要。 HMAC 发送方 和 接收方 都有的 key 进行计算,而没有这把 key 的第三方,则是 无法计算出正确的散列值的,这样就可以防止数据被篡改。

</aside>

对称加密算法(对称块加密算法)