了解MD5算法以及溢出是如何发生的

时间:2015-04-19 13:12:24

标签: algorithm md5

我一直在审查维基百科上的MD5算法伪代码,我似乎无法理解整数溢出是如何发生的。

特别是这部分:

//Add this chunk's hash to result so far:
    a0 := a0 + A
    b0 := b0 + B
    c0 := c0 + C
    d0 := d0 + D

我认为最终会发生整数溢出,特别是对于大输入。价值不会继续膨胀并膨胀吗?

https://en.wikipedia.org/wiki/MD5

1 个答案:

答案 0 :(得分:0)

正如维基百科上伪代码顶部的评论所说:

//Note: All variables are unsigned 32 bit and wrap modulo 2^32 when calculating

因此,您需要确保无符号32位整数在您的平台上包装模2 ^ 32。许多语言都是这种情况,例如C.否则,您可能需要手动执行模数。