哈希算法介绍
Posted 毕老师大家庭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哈希算法介绍相关的知识,希望对你有一定的参考价值。
引言:什么是哈希算法?哈希(Hash)算法又称为散列、杂凑算法,可以把任意长度的消息M映射成为一个较短且固定长度的输出H(M),称H(M)为哈希值,散列值、杂凑值或者消息摘要。这是一种压缩映射,散列值的空间通常小于输入的空间。在加密中,它是一种单向密码体制,即从明文到密文的不可逆映射,只有加密过程,没有解密过程(因为一个输出可能对应多个输入)。
1哈希的用途
(a)消息认证
(b)数字签名
(c)口令的安全性
(d)数据完整性
(e)语音识别
2哈希函数的特点
1、易压缩
2、易计算
3、单向性
4、抗碰撞性:理想的哈希函数是无碰撞的,但是实际的算法设计中很难做到(大空间的消息压缩映射到小空间上),有两种抗碰撞性:
i.弱抗碰撞性:对于给定的一个消息,要发现另一个消息使其碰撞在计算上不可行;
ii.强抗碰撞性:对于任意的一对不同的消息,使其碰撞在计算上不可行。
5、高灵敏性:如果输入有微小不同,哈希运算后的输出有一半以上不同。
3哈希算法介绍
一个可靠的哈希算法应该满足:
对于给定数据M,易算出哈希值h=H(M);根据h很难反算出M;很难找到M和N使得H(M)=H(N)
下面通过一个游戏,来了解简化的哈希算法
猜数游戏:
李:我想一个数,假设为A,然后A乘以B,得到结果C。 A是我的密钥,我把结果C告诉你,然后你来猜A是奇数还是偶数?
张:那不行,如果你告诉我C是12,我猜A是奇数,你可以说A是4,B是3。我猜A是偶数,你可以说A是3,B是4。无法验证A的唯一性。
李:那换个运算过程
1、 A+123=B
2、 B^2=C
3、 取C中第2~4位数,组成一个3位数D
4、 D/12的结果求余数,得到E
假如A为5
B=5+123=128
128^2=16384
D=638 E=638mod12=53
这样一个A值就对应一个唯一的E值,根据E还推算不出A。是这一种单向加密,称为哈希算法。
目前比较普遍的哈希算法有MD5,SHA1(160位哈希值),SHA2(256位哈希值和512哈希值)
给我【好看】
你也越好看!
以上是关于哈希算法介绍的主要内容,如果未能解决你的问题,请参考以下文章