什么叫散列函数?

倦组词2023-01-31  39

单向散列函数是进行数据加密/编码的一种算法

单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:

md5(message

digest

algorithm

5):是rsa数据安全公司开发的一种单向散列算法,md5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值;

sha(secure

hash

algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;

mac(message

authentication

code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。hmac(用于消息认证的密钥散列法)就是这种函数的一个例子。

crc(cyclic

redundancy

check):循环冗余校验码,crc校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段(crc

并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。

所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的.这个特性是散列函数具有确定性的结果.但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但并不能绝对肯定二者一定相等.输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值.

典型的散列函数都有无限定义域,比如任意长度的字节字符串,和有限的值域,比如固定长度的比特串.在某些情况下,散列函数可以设计成具有相同大小的定义域和值域间的一一对应.一一对应的散列函数也称为排列.可逆性可以通过使用一系列的对于输入值的可逆「混合」运算而得到.


转载请注明原文地址:https://juke.outofmemory.cn/read/2848108.html

最新回复(0)