MD5加密算法简介
在现阶段,存在着两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将我们可以直接理解的明文数据加密为我们不可直接理解的密文数据, 然后, 在需要的时候,可以使用一定的算法将这些加密以后的密文解密为原来可以理解的明文。单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。MD5就是采用单向加密的加密算法。
MD5的全称是Message-Digest Algorithm 5,在20世纪90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。 Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。MD5将任意长度的“ 字节串” 变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点像不存在反函数的数学函数。
如何在ASP程序设计中实现MD5加密
在ASP程序设计中,实现MD5加密是很简单的,首先需要下载一个MD5.ASP,网上有很多。把MD5.ASP放在网站目录,然后在需要加密的页面最上面加入,这样就可以在页面中使用MD5这个函数了。
比如另一个页面提交了表单,加密页面要把它存人数据库,不加密的时候直接使用password=Request("password"),然后把变量password利用SQL语句存入数据库。如果利用MD5加密,只需要在这一句后面加上password=MD5(Request("password")),我们可以把经过加密的数据放入password这个变量中,再把它利用SQL语句存人数据库。比如123经过加密后会变成ac59075b964b0715,没有谁能够算出它是123经过MD5加密来的。由于算法得出的结果是不变的,也就是123经过加密后永远是ac59075b964b0715,所以由于合法用户知道密码,他就可以在登陆的时候输入123,程序再进行MD5加密,然后把加密之后的数字ac59075b964b0715跟数据库比较,这显然是相等的,所以就通过验证了。如果用户忘记了密码是123,那谁也无法由ac59075b964b0715得出这个密码了。