MD5加密算法在Web數(shù)據(jù)庫(kù)中的應(yīng)用

隨著Web數(shù)據(jù)庫(kù)的應(yīng)用越來越廣泛,Web數(shù)據(jù)庫(kù)的安全問題也日益突出,保障和加強(qiáng)數(shù)據(jù)庫(kù)的安全性已成為目前必須要解決的問題。在Web數(shù)據(jù)庫(kù)中,通常是對(duì)重要的用戶口令采用MD5加密算法進(jìn)行加密。

MD5加密算法在Web數(shù)據(jù)庫(kù)中的應(yīng)用

一、MD5加密算法簡(jiǎn)介

在現(xiàn)階段存在兩種加密方式:?jiǎn)蜗蚣用芎碗p向加密。雙向加密是將我們可以直接理解的明文數(shù)據(jù)加密為我們不可直接理解的密文數(shù)據(jù),然后,在需要的時(shí)候,可以使用一定的算法將這些加密以后的密文解密為原來可以理解的明文。雙向加密適合于隱秘通訊。而單向加密則只能對(duì)數(shù)據(jù)進(jìn)行加密,也就是說,沒有辦法對(duì)加密以后的數(shù)據(jù)進(jìn)行解密。這樣做的優(yōu)點(diǎn)在于:當(dāng)用戶創(chuàng)建一個(gè)新的賬號(hào)或者密碼時(shí),其信息不是直接保存到數(shù)據(jù)庫(kù),而是經(jīng)過一次加密以后再保存,這樣,即使這些信息被泄露,也不能立即理解這些信息的真正含義。

MD5就是采用單向加密的加密算法。對(duì)于MD5加密算法而言,有兩個(gè)特性是很重要的:

第一是任意兩段明文數(shù)據(jù),加密以后的密文不能是相同的;

第二是任意一段明文數(shù)據(jù),經(jīng)過加密以后,其結(jié)果必須永遠(yuǎn)是不變的。

前者的意思是不可能有任意兩段明文文件加密以后得到相同的密文,后者的意思是如果我們加密特定的數(shù)據(jù),得到的密文一定是相同的。

二、MD5加密算法在Web數(shù)據(jù)庫(kù)中的應(yīng)用

1、使用MD5加密算法加密WEB數(shù)據(jù)庫(kù)中的用戶密碼

一般網(wǎng)站往往將用戶的賬號(hào)、密碼等信息使用非加密的方式保存到數(shù)據(jù)庫(kù)。比如賬號(hào)使用類型為字符型,同樣,密碼也是采用字符類型。但是,如果打算采用MD5加密方式存儲(chǔ)密碼信息,就必須改變密碼字段的類型為二進(jìn)制方式,因?yàn)榧用芤院蟮妮敵鍪鞘褂枚M(jìn)制數(shù)組的。

如果用戶是在表單中名為password的文本框中輸入密碼,而在數(shù)據(jù)庫(kù)中則用inpassword字段存放加密后的密碼,常用加密方法為:

password=request.form("password")

inpassword=md5(password)

這樣在數(shù)據(jù)庫(kù)中存儲(chǔ)的就是通過MD5加密算法加密后的用戶名和口令。如果要進(jìn)一步維護(hù)數(shù)據(jù)的安全性,還可采用重復(fù)加密,如:inpassword=md5(md5(password))。當(dāng)然,在當(dāng)前頁(yè)面中需要包含用于實(shí)現(xiàn)MD5加密的文件md5.asp(此文件主要是MD5加密算法的實(shí)現(xiàn)過程)

2、使用MD5加密算法鑒別用戶身份的合法性

由于用戶名和密碼是按照MD5加密算法加密以后保存在數(shù)據(jù)庫(kù)中的,而MD5加密算法是單向加密算法,所以,不可能將加密以后的文件轉(zhuǎn)為明文。這就出現(xiàn)一個(gè)問題,如果用戶使用賬號(hào)、密碼登錄,怎么知道用戶提供的密碼是否準(zhǔn)確呢?因?yàn)槿我庖欢蚊魑臄?shù)據(jù),經(jīng)過加密以后,其結(jié)果必須永遠(yuǎn)是不變的,所以,當(dāng)用戶登錄的時(shí)候,系統(tǒng)把用戶輸入的密碼計(jì)算成md5值,然后再去和保存在文件系統(tǒng)中的md5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。

通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下,就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道,而且還在一定程度上增加了密碼被破解的難度。

采用MD5加密算法對(duì)用戶密碼進(jìn)行加密處理,可以在一定程度上保障數(shù)據(jù)的安全性。

小知識(shí)之Web數(shù)據(jù)庫(kù)

Web數(shù)據(jù)庫(kù)屬于深度Web(Deep Web)的一種資源形勢(shì),通常指在互聯(lián)網(wǎng)中以Web查詢接口方式訪問的數(shù)據(jù)庫(kù)資源,其結(jié)構(gòu)是后臺(tái)采用數(shù)據(jù)庫(kù)管理系統(tǒng)存儲(chǔ)數(shù)據(jù)信息,對(duì)外提供包含表單的Web頁(yè)面作為訪問接口,查詢結(jié)果也以包含數(shù)據(jù)列表的Web頁(yè)面形式返回給用戶。