前言:
目前看官们对“描述md5算法的产生过程及具体计算步骤”可能比较关切,各位老铁们都想要了解一些“描述md5算法的产生过程及具体计算步骤”的相关知识。那么小编同时在网络上汇集了一些关于“描述md5算法的产生过程及具体计算步骤””的相关资讯,希望各位老铁们能喜欢,同学们快快来学习一下吧!MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,也称为哈希算法或者杂凑算法,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域。
MD2
Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的校验和追加到信息末尾,并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了校验和MD2将产生冲突。MD2算法加密后结果是唯一的 。
MD4
为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的比特位长度减去448后能被512整除(信息比特位长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damgard/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。
MD5
1991年,Rivest开发出技术上更为趋近成熟的MD5算法。它在MD4的基础上增加了"安全带"的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息摘要的大小和填充的必要条件与MD4完全相同。
尽管不同版本算法的具体原理肯定有所区别,但是它们的基本工作机制是一样的:都是先在发送端将一个随机长度的消息进行压缩(需要进行一系列的运算,用来打乱原始消息的次序,生成的是一段看不懂的密文),生成一段128为的消息摘要(哈希值),并随着原始消息一起发送。接收方在接收到这些信息之后,采用相同的方法对所接收到的原始数据进行压缩,然后查看生成的消息摘要和发送过来的消息摘要是否相同,相同则认为所收到的消息是完整的,在传输的过程之中没有被篡改。
通常来说。MD5算法并不能被称为加密算法,因为MD5是不可逆的,即不能不同摘要信息还原出原始信息,仅仅会用于认证。也正是如此,MD5算法通常不认为是一种加密算法,并不具有解密的功能。