MD5算法原理(未完成)
MD5简介
MD5不是一种加密算法,而是一种哈希算法,用于生成固定长度的哈希值。哈希算法通常不涉及加密或解密,它们是单向操作,将输入数据转换为固定长度的哈希值,而无法从哈希值还原原始数据。
MD5算法核心步骤:
填充数据:
首先,将输入数据填充到长度为512位的多重数(multiple of 512 bits),以确保数据长度是512位的倍数。填充的数据通常包括原始数据和一些标志位,以确保填充后的数据长度符合要求。
初始化:
定义四个32位的初始变量A、B、C和D,通常用以下16进制初始值初始化:
A = 0x67452301
B = 0xEFCDAB89
C = 0x98BADCFE
D = 0x10325476
切分数据:
将填充后的数据分成512位的块。
处理块:
对每个512位的块执行四轮循环操作:
最终结果:
将四个32位的变量A、B、C和D连接起来,形成128位的MD5哈希值。