资 源 简 介
1. 对信息进行填充,使其字节长度与448模512同余
2. 设置好4个链接变量,进入算法的4轮循环运算
3. 每轮一个非线性函数
F(x, y, z) (((x) & (y)) | ((~x) & (z)))
G(x, y, z) (((x) & (z)) | ((y) & (~z)))
H(x, y, z) ((x) ^ (y) ^ (z))
I(x, y, z) ((y) ^ ((x) | (~z)))
MD5轮主要操作:
FF(a, b, c, d, x, s, ac) {
(a) += F ((b), (c), (d)) + (x) + ac;
(a) = ROTATE_LEFT ((a), (s));
(a) += (b);
}
GG(a, b, c, d, x, s, ac) {
(a) += G ((b), (c), (d)) + (x) + ac;
(a) = ROTATE_LEFT ((a), (s));
(a) += (b);
}
HH(a, b, c, d, x, s, ac) {
(a) += H ((b), (c), (d)) + (x) + ac;
(a) = ROTATE_LEFT ((a), (s));
(a) += (b);
}
II(a, b, c, d, x, s, ac) {
(a) += I ((b), (c), (d)) + (x) + ac;
(a) = ROTATE_LEFT ((a), (s));
(a) += (b);
}