首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于校验和的Adler32和MD4

用于校验和的Adler32和MD4
EN

Stack Overflow用户
提问于 2011-12-04 07:25:39
回答 1查看 652关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-04 07:52:55

我会把它们都用来做校验和。由于这两个选项都“相对较快”,你不可能比同时使用两个古老的选项更安全。

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

引用:

在最初的SWID要求中,可接受的冲突率被确定为千万分之一。这里的唯一性程度很重要,但它不必像MD4声称的2^64次操作那样健壮,才可能发生冲突。

来源:MD4-SWID.pdf

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

乔纳森·斯通在2001年发现,Adler-32对非常短的消息有弱点。他写道:“简单地说,问题是,对于非常短的数据包,Adler32保证对可用比特的覆盖很差。请不要相信我的话,问问Mark Adler。:-)”问题是,对于短消息,sum A不会换行。对于128字节的消息,A的最大值为32640,低于模运算所使用的值65521。可以在RFC3309中找到扩展的解释,其强制使用CRC32而不是用于流控制传输协议的Adler-32。

和:

运行Adler、CRC32和两者的

在几组100万个随机生成的类似url的字符串上,长度从16到128个字符不等,Adler在~1%的情况下产生重复项;CRC32产生~0.2%;并且在几次运行中,两者的组合仅发现2个重复项(约.0.002%,但没有足够的样本来判断代表性)。

来源:Hashing urls with Adler32

考虑到碰撞的可能性很高,特别是使用Alder32的短信,我投票给MD4。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8371871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档