MD5加密算法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

MD5的原理:
MD5采用的是对输入的任意长度的消息进行运算,产生一个128位的消息摘要,并且它是一个 不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串。
MD5的算法非常复杂:参见 Wiki


MD5的典型应用
1.密码加密
将用户设置的密码进行md5运算后存入数据库。当用户登录时,只需再求一次md5值,并与数据库中的值进行比对。判断密码是否正确就知道用户的合法性了。 因为md5不可逆,所以即使数据库被突破或下载,也不可能知道用户密码。而这样带来的问题就是用户也不能找回密码,而只能在达成一定的条件后让用户重置密码。这就是为什么现在越来越多的网站不能找回密码,而只能重置密码。因为多数使用了不可逆算法(此处不只md5,也包括其它不可逆算法的应用)。
对于有找回密码功能的系统,密码机制要更加注意,要么你存储的就是明文,要么密码加密的机制是可以反向破解的。( CSDN需要好好反思下)

2.文件校验
因为md5的重码率低到只存在理论可能,因此常被用来校验数据是否被篡改(或者检查文件是否下载正确)。我们常见的,一些下载网站会给出文件的md5值,以供用户在下载后校验(一般称为 "check sum" or md5sum) ,因为即使在下载过程中,只改动了一个字节,其md5值也会改变。
MD5加密算法_第1张图片

另外回到本行,Oracle很多产品都支持MD5检查。如Oracle EBS的MD5检查,见 MD5 Checksums for R12.1.1 Rapid Install Media (Doc ID 802195.1)




你可能感兴趣的:(MD5加密算法)