哪种算法能提供更安全的“快速校验和”?仅从MD4
和Adler32
中选择。
答案 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%,但没有足够的样本来判断 代表)。
考虑到碰撞的可能性很高[尤其]使用Alder32的短消息,MD4有我的投票。