MD5计算

时间:2012-12-17 04:59:11

标签: c++ optimization md5 md5sum

在md5计算算法中有一个函数

// decodes input (unsigned char) into output (uint4). Assumes len is a multiple of 4.
void MD5::decode(uint4 output[], const uint1 input[], size_type len)
{
   for (unsigned int i = 0, j = 0; j < len; i++, j += 4)
     output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) |
       (((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24);
}

为什么不用memcpy复制?是因为不同机器上可能存在不同的字节顺序吗?

1 个答案:

答案 0 :(得分:2)

正确,这是一个按字节排序的事情。它相当于little-endian系统上的直接副本,但最终会逆转big-endian上的字节。