我们先把js 扣下来看一下
整体扣一下 ,运行后发现结果一致。
到这里就结束了吗,不不,这次我们要看到它里面具体的变动 <-_->
先看一下md5的初步加密流程
void MD5Init(MD5_CTX *context) {context->count[0] = 0;context->count[1] = 0;context->state[0] = 0x67452301;context->state[1] = 0xEFCDAB89;context->state[2] = 0x98BADCFE;context->state[3] = 0x10325476;
}typedef struct {unsigned int count[2];unsigned int state[4];unsigned char buffer[64];
} MD5_CTX;
这个state 就是每一轮加密的初始abcd ,md5首先把一个空的context 初始化为上面的址,
buffer[64] 里也是要填充的。但是只有64byte,如果超过64 既512bit,就要分组进行四个函数共计64轮的加密,
每一轮的值累加到state中 。 FF(a, b, c, d, x[0], 7, 0xd76aa478); /* 1 第一轮*/FF(d, a, b,