2011-12-03 115 views
0

哪种算法可以提供更安全的“快速校验和”?只从MD4Adler32中选择。Adler32和MD4的校验和

+0

我为什么只能选择那些?我永远不会使用它们。这是一个测试问题吗? –

+0

@Chris:你为什么不使用这些哈希函数? – Cartesius00

+0

碰撞的可能性为一。 –

回答

2

我会用他们两个的校验和。由于两者都“相对较快”,所以不能比使用两种古老的选项更安全。

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

引用:

在原始SWID要求,可接受的碰撞率为 1000万确定在1。这里的唯一性程度是重要的,但它不一定像在发生冲突之前的MD4所声称的操作一样强健。

来源:MD4-SWID.pdf

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

乔纳森·斯通在2001年的Adler32有 非常短消息的弱点被发现。他写道:“简单地说,问题是,对于非常短的数据包,Adler32保证给出可用位的覆盖率很差。请不要问我的话,请问Mark Adler :-)” 问题是该总和A不会包装成短消息。对于128字节的消息,A的最大值为,其值为32640,低于模操作使用的值 65521。 RFC 3309中的扩展解释可以是 ,其要求对于SCTP(流控制传输协议)使用CRC32而不是Adler-32 。

和:

上几套百万随机 生成的URL状串范围从16到128个字符中 长度运行阿德勒,CRC32和二者,阿德勒产生在〜1%的重复的案件; CRC32产生 〜0.2%;并且在几次运行中,二者的组合都发现了仅有2 重复(大约0.002%,但没有足够的样品被判断为 代表)。

来源:Hashing urls with Adler32

考虑碰撞的几率很高[特别]使用Alder32短消息,MD4有我的投票。

+0

优秀的职位,谢谢。 – Cartesius00