资 源 简 介
md5算法简要叙述:
md5以64Bytes分组来处理输入的信息,而每一分组又被划分为16个4Bytes子分组,经过一系列处理后,算法的输出为四个4Bytes分组的级联。
拿到待加密信息后,首先需要在末尾填充一个0x80,以及无数个0x00,使得填充后信息的总长度(Bytes)对64求余的结果等于56。之后再填充一个以8Bytes表示的填充前信息长度(bits)。
接下来进入主循环的四轮运算。每一轮都会调用16次相同的函数,但参数不同。每一轮所掉用的函数均不相同。下面直接来看看主循环所掉用的所有函数:
第一轮:
FF(a, b, c, d, *M[0], 7, 0xd76aa478);
FF(d, a, b, c, *M[1], 12, 0xe8c7b756);
FF(c, d, a, b, *M[2], 17, 0x242070db);
FF(b, c, d, a, *M[3], 22, 0xc1bdceee);
FF(a, b, c, d, *M[4], 7, 0xf57c0faf);
&n