Rabin Hash及其他哈希算法比较

本文比较了RabinHash和SHA1两种哈希算法。RabinHash通过将文本视为01串进行快速计算,冲突率低,适用于文本匹配,时间复杂度为O(n)。SHA1作为安全哈希算法,将任意长度的二进制字符串映射为160位固定长度的哈希值,用于数字签名。
摘要由CSDN通过智能技术生成

Rabin Hash及其他哈希算法比较
2009-11-21 22:32

 

最近看了RabinHash相关的资料,写了写相关的一点程序。下面比较一下RabinHash和SHA1。

RabinHash
冲突率很小。它是将等计算文本看成由01串组成的一个很大的数或是多项式,对一个不可约的多项式取模得到结果。计算时间为线性时间,实现时可以仅用移位和异或,计算速度较快。对于固定长度的哈希,如果已知当前位置哈希值,则可以在常数时间内计算出向后移动一个单位的哈希值。这个性质可以用在文本匹配上,时间复杂度为O(n)。具体实现时,可以以字节或字为单位,提前打表记录移位,进一步提高速度。

SHA1
SHA1的全称是Secure Hash Algorithm(安全哈希算法)。加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。数据的少量更改会在哈希值中产生不可预知的大量更改。所以你很难从加密后的文字中找到蛛丝马迹。常用于数字签名。生成的哈希为160位,是一种不可逆的算法。计算过程有补位、补长度、使用常数、使用多个函数,是典型的杂凑哈希。

MD5
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要.MD5 算法的哈希值大小为 128 位。是一种不可逆的算法。

posted on 2012-05-11 12:42  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/05/11/2495799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值