我一直在审查维基百科上的MD5算法伪代码,我似乎无法理解整数溢出是如何发生的。
特别是这部分:
//Add this chunk's hash to result so far:
a0 := a0 + A
b0 := b0 + B
c0 := c0 + C
d0 := d0 + D
我认为最终会发生整数溢出,特别是对于大输入。价值不会继续膨胀并膨胀吗?
答案 0 :(得分:0)
正如维基百科上伪代码顶部的评论所说:
//Note: All variables are unsigned 32 bit and wrap modulo 2^32 when calculating
因此,您需要确保无符号32位整数在您的平台上包装模2 ^ 32。许多语言都是这种情况,例如C.否则,您可能需要手动执行模数。