MD5 是将明文处理成 16byte 的哈希摘要
md5 常与其他算法结合,用于数字签名,如邮件发送
typedef struct _MD5_CTX
{
unsigned long state[4];
unsigned long count[2]; /* 已处理的报文的二进制位数,最大值=2^64-1 */
unsigned char data[4]; /* 64字节message块 */
}
对 state 赋初始值,清空 count
每 64 个字节为一组,进行处理更新
因为不是所有的明文都是 64 字节的倍数,所以需要对缺失的内容进行补充,补充的内容包括 填充物 和 明文长度
MD5 的破解关键在于找到 Collision
一种较弱的 MD5 破解方法,关键在于 预计算