用于校验和的Adler32和MD4

时间:2011-12-03 23:25:39

标签: hash checksum

哪种算法能提供更安全的“快速校验和”?仅从MD4Adler32中选择。

1 个答案:

答案 0 :(得分:2)

我会将它们用于校验和。由于两者都“相对快速”,所以你不能比使用两者都更安全 - 古老的选择。

但是,如果您正在寻找最安全的选择 - 我会说MD4。

引用:

  

在原始SWID要求中,可接受的碰撞率是   确定为1千万。这里的独特程度是   很重要,但它不必像MD4声称的2 ^ 64那样强大   可能发生碰撞前的操作。

来源:MD4-SWID.pdf

对于短消息,Adler32有一个弱点需要注意:

  

乔纳森·斯通在2001年发现阿德勒-32有一个弱点   很短的消息。他写道:“简而言之,问题在于,非常   短包,Adler32保证给予差的覆盖率   可用位。马克阿德勒问道,不要相信我的话。 :-)“   问题是总和A不包装短消息。最大值   128字节消息的A值是32640,低于该值   模运算使用65521。可以进行扩展说明   在RFC 3309中找到,它要求使用CRC32而不是Adler-32   对于SCTP,流控制传输协议。

  

随机运行Adler,CRC32和两套100万套   生成类似url的字符串,范围从16到128个字符   长度,阿德勒在约1%的案件中产生重复; CRC32出品   〜0.2%;并且在几次运行中,两者的组合仅发现2   重复(大约0.002%,但没有足够的样本来判断   代表)。

来源:Hashing urls with Adler32

考虑到碰撞的可能性很高[尤其]使用Alder32的短消息,MD4有我的投票。