hash函数,哈希算法,MD5。。。理…

hash函数  

最初知道这个名字,是在学数据结构的时候,那时候是将哈希算法演示出来,再之后就是学javascript的时候接触的了,在学backbone的时候,看服务器代码的时候,服务器加密使用哈希函数将密码加密成固定大小的字串存储。

百度百科解释:

Hash,一般翻译做" 散列 ",也有直接音译为" 哈希 "的,就是把任意长度的输入(又叫做预映射, pre-image),通过 散列算法 ,变换成固定长度的输出,该输出就是 散列值 。这种转换是一种 压缩映射 ,也就是, 散列值 的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的 消息摘要 函数

用途

HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系
了解了hash基本定义,就不能不提到一些著名的 hash算法,MD5 和 SHA1 可以说是目前应用最广泛的 Hash算法,而它们都是以 MD4 为基础设计的。

1) MD4

MD4(RFC 1320)是 MIT 的  Ronald L. Rivest  在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位 字长的处理器上用高速 软件实现--它是基于 32  位操作数的位操作来实现的。

2) MD5

MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好

那么这些Hash算法到底有什么用呢?
Hash算法在信息安全方面的应用主要体现在以下的3个方面:
1) 文件校验
我们比较熟悉的校验算法有 奇偶校验和CRC校验,这2种校验并没有抗 数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。
MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的 命令
2)  数字签名
Hash 算法也是现代密码体系中的一个重要组成部分。由于 非对称算法运算速度较慢,所以在 数字签名协议中,单向 散列函数扮演了一个重要的角色。对 Hash 值,又称"数字摘要"进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。
3) 鉴权协议
如下的鉴权协议又被称作"挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值