MD5是一种被广泛使用的密码散列函数。MD5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位的散列值,用于确保信息传输完整一致。
MD5 消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个 128 位的散列值,用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特设计,于 1992 年公开,用以取代 MD4 算法。这套算法的程序在 RFC 1321 中被加以规范。 将数据运算变为另一固定长度值,是散列算法的基础原理。
1996 年后被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如 SHA-2。2004 年,证实 MD5 算法无法防止碰撞(collision),因此不适用于安全性认证,如 SSL 公开密钥认证或是数字签名等用途。
MD5 由 MD4、MD3、MD2 改进而来,主要增强算法复杂度和不可逆性。当前,MD5 算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的错误检查领域。例如在一些 BitTorrent 下载中,软件将通过计算 MD5 检验下载到的文件片段的完整性。
MD5 已经广泛使用在为文件传输提供一定的可靠性方面。例如,服务器预先提供一个 MD5 校验和,用户下载完文件以后,用 MD5 算法计算下载文件的 MD5 校验和,然后通过检查这两个校验和是否一致,就能判断下载的文件是否出错。
MD5 是输入不定长度信息,输出固定长度 128-bits 的算法。经过程序流程,生成四个 32 位数据,最后联合起来成为一个 128-bits 散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算。得出结果。