摘要算法也被称为 Hash 算法。其特点如下:
无论输入数据的大小,摘要的长度是固定的。
算法是单向的。无法通过摘要反推原始数据。
微小的数据变化,会导致摘要的巨大变化。
常见的摘要算法有:MD5、SHA-1、SHA-256 等。
除此之外还有一些其它的算法,比如:
HMAC 算法:HMAC 在 Hash 算法的基础上添加了一个随机数 slate。这样相同的输入也可以生成不同的摘要。
Hash 算法常用于验证数据的完整性。
哈希碰撞
哈希碰撞是指两个不同的输入数据,通过 Hash 算法生成的摘要是相同的。这种情况是存在的,但是概率非常低。
彩虹攻击
彩虹攻击通过预生成字典的方式来破解 Hash 算法。通过预先生成明文和 Hash,从而快速破解 Hash 算法。