散列函数

       1。散列函数的选取原则是:运算尽可能简单;函数的值域必须在散列表的范围内;尽可能使得结点均匀分布,也就是尽量让不同的关键码具有不同的散列函数值。需要考虑各种因素:关键码长度、散列表大小、关键码分布情况、记录的检索频率等等。

 

2。散列(HASH)函数H也称哈希函数或杂凑函数等,是典型的多到一的函数,其输入为一可变长x(可以足够的长),输出一固定长的串h(一般为128位、160位,比输入的串短),该串h被称为输入xHash值(或称消息摘要Message Digest、指纹、密码校验和或消息完整性校验),计作h=H(x)。为防止传输和存储的消息被有意或无意地篡改,采用散列函数对消息进行运算生成消息摘要,附在消息之后发出或与信息一起存储,它在报文防伪中具有重要应用。

消息摘要采用一种单向散列算法将一个消息进行换算。在消息摘要算法中,文件数据作为单向散列运算的输入,这个输入通过

HASH函数产生一个散列值。如果改动了文件,散列值就会相应地改变,接收者即能检测到这种改动过的痕迹。从理论上来讲,攻击者不可能制造一个替用的消息来产生一个完全相同的消息摘要。Hash函数可用于数字签名、消息的完整性检测、消息的起源认证检测等。

散列函数是安全的是指它具有:

一致性:相同的输入产生相同的输出。

随机性:消息摘要外观是随机的,以防被猜出源消息。

唯一性:几乎不可能找到两个消息产生相同的消息摘要。

单向性:即如果给出输出,则很难确定出输入消息。

 

 

 

Hash

函数H一般满足以下几个基本要求:

 

 

1)输入x 可以为任意长度;输出数据串长度固定;

 

 

2)正向计算容易,即给定任何x,容易算出H(x);反向计算困难,即给出一Hashh,很难找出一特定输入x,使h=H(x)

 

 

3)抗冲突性(抗碰撞性),包括两个含义,一是给出一消息x,找出一消息y使H(x)=H(y)是计算上不可行的(弱抗冲突),二是找出任意两条消息xy,使H(x)=H(y)也是计算上不可行的(强抗冲突)。

3。散列就是无需查找,直接用元素的查找键来确定元素索引的方法。实现了散列这种方法的函数就叫散列函数,散列函数接受查找键,产生一个称为散列表的数组中的元素的索引。散列又可以有几种(理想的散列,典型的散列),所谓理想散列就是不产生冲突的散列,它将每个查找键都映射为不同的整数值。二 散列函数的一般特性:       1   使冲突最小       2    使元素均匀分布在散列表里。       3    计算要快。        散列函数的功能:          1  将查找键转换为称为散列码的整数。          2   将散列码压缩到散列表的范围。  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值