md5加密,这里的程序只是简单实现了md5加密的效果,适用于字符串,
md5加密的主要步骤为:
1.md5结构体定义,即md5头文件。
2.信息初始化。
md5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。
首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息(信息)长度。
需要用于用于初始化md5结构体的四个32位变量为:
3.定义循环的线性函数。
4.循环处理信息
循环的次数是消息中512位消息分组的数目。
主循环有四轮,每轮很相拟。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。
再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。
所有这些完成之后,将A,B,C,D分别加上a,b,c,d。然后用下一分组数据继续运行算法,具体的算法定义见步骤2。
5.md5加密数据输出。
算法的输出由四个32位分组组成,将它们形成一个128位散列值,即A,B,C,D组成。
md5.c