應(yīng)用于ASP程序設(shè)計的MD5加密算法

MD5加密算法

MD5加密算法簡介

在現(xiàn)階段,存在著兩種加密方式,單向加密和雙向加密。雙向加密是加密算法中最常用的,它將我們可以直接理解的明文數(shù)據(jù)加密為我們不可直接理解的密文數(shù)據(jù), 然后, 在需要的時候,可以使用一定的算法將這些加密以后的密文解密為原來可以理解的明文。單向加密剛好相反,只能對數(shù)據(jù)進(jìn)行加密,也就是說,沒有辦法對加密以后的數(shù)據(jù)進(jìn)行解密。MD5就是采用單向加密的加密算法。

MD5的全稱是Message-Digest Algorithm 5,在20世紀(jì)90年代初由MIT的計算機科學(xué)實驗室和RSA Data Security Inc發(fā)明,經(jīng)MD2、MD3和MD4發(fā)展而來。 Message-Digest泛指字節(jié)串(Message)的Hash變換,就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù)。MD5將任意長度的“ 字節(jié)串” 變換成一個128bit的大整數(shù),并且它是一個不可逆的字符串變換算法,換句話說就是,即使你看到源程序和算法描述,也無法將一個MD5的值變換回原始的字符串,從數(shù)學(xué)原理上說,是因為原始的字符串有無窮多個,這有點像不存在反函數(shù)的數(shù)學(xué)函數(shù)。

如何在ASP程序設(shè)計中實現(xiàn)MD5加密

在ASP程序設(shè)計中,實現(xiàn)MD5加密是很簡單的,首先需要下載一個MD5.ASP,網(wǎng)上有很多。把MD5.ASP放在網(wǎng)站目錄,然后在需要加密的頁面最上面加入,這樣就可以在頁面中使用MD5這個函數(shù)了。

比如另一個頁面提交了表單,加密頁面要把它存人數(shù)據(jù)庫,不加密的時候直接使用password=Request("password"),然后把變量password利用SQL語句存入數(shù)據(jù)庫。如果利用MD5加密,只需要在這一句后面加上password=MD5(Request("password")),我們可以把經(jīng)過加密的數(shù)據(jù)放入password這個變量中,再把它利用SQL語句存人數(shù)據(jù)庫。比如123經(jīng)過加密后會變成ac59075b964b0715,沒有誰能夠算出它是123經(jīng)過MD5加密來的。由于算法得出的結(jié)果是不變的,也就是123經(jīng)過加密后永遠(yuǎn)是ac59075b964b0715,所以由于合法用戶知道密碼,他就可以在登陸的時候輸入123,程序再進(jìn)行MD5加密,然后把加密之后的數(shù)字ac59075b964b0715跟數(shù)據(jù)庫比較,這顯然是相等的,所以就通過驗證了。如果用戶忘記了密碼是123,那誰也無法由ac59075b964b0715得出這個密碼了。