单向散列函数,也称单向Hash函数或杂凑函数,是一种将任意长度的输入消息转化为固定长度输出串的函数。该输出串被称为消息的散列值,通常用于生成消息摘要和密钥加密等领域[1]。
应用场景
单向散列函数主要应用于完整性校验和提升数字签名的有效性。常见的单向散列函数包括MD5、SHA、MAC以及CRC等。MD5是由RSA数据安全公司开发的一种单向散列算法,能够将不同长度的数据块暗码运算成128位的数值。SHA则是一种较新的散列算法,能够对任意长度的数据运算生成160位的数值。MAC,即消息认证代码,是一种使用密钥的单向函数,常用于系统或用户之间的文件或消息认证。HMAC则是MAC的一种实例。CRC,即循环冗余校验码,虽然不属于严格的散列算法,但由于其简单的实现和强大的检错能力,在数据 校验领域广泛应用[2][3]。
性质特点
单向散列函数具有以下性质: