摘 要:為了解決大學(xué)生心理健康跟蹤系統(tǒng)中的數(shù)據(jù)安全問題,文中采用MD5算法的加密及文件校驗(yàn)功能,實(shí)現(xiàn)大學(xué)生心理健康跟蹤系統(tǒng)中系統(tǒng)安全性管理、用戶信息安全等方面的應(yīng)用,以達(dá)到優(yōu)化大學(xué)生心理健康跟蹤系統(tǒng),最終提高系統(tǒng)的安全性及可用性。
關(guān)鍵詞:MD5;心理健康;系統(tǒng)設(shè)計(jì);系統(tǒng)實(shí)現(xiàn)
中圖分類號(hào):TN918.1
隨著網(wǎng)絡(luò)信息時(shí)代的普及,信息安全問題日益突出,人們對(duì)信息的安全意識(shí)也越來越強(qiáng)烈。尤其在一些需要提供真實(shí)身份的場(chǎng)合中,顯得格外突出。針對(duì)大學(xué)生心理健康跟蹤系統(tǒng),數(shù)據(jù)的安全性至關(guān)重要,因此,設(shè)計(jì)并使用了MD5算法來保護(hù)用戶口令,確保用戶授權(quán)及數(shù)據(jù)完整性,最終達(dá)到保證系統(tǒng)的安全性。
1 MD5算法
1.1 簡(jiǎn)介
MD5的全稱是Message-Digest Algorithm5,是Ron Rivest設(shè)計(jì)的一種單向散列函數(shù)。Message-Digest泛指字節(jié)串(Message)的Hash變換,就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù)。MD5將任意長(zhǎng)度的字節(jié)串0變換成一個(gè)128bit的大整數(shù),屬于單向加密的加密算,即使看到源程序和算法描述,也無法將一個(gè)MD5的值變換回原始的字符串。
1.2 原理
對(duì)MD5算法簡(jiǎn)要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。具體步驟如下:
(1)首先需要對(duì)信息進(jìn)行填充,使其位長(zhǎng)對(duì)512求余的結(jié)果等于448。因此,信息的位長(zhǎng)(Bits Length)將被擴(kuò)展至N*512+448,N為一個(gè)非負(fù)整數(shù),N可以是零。填充的方法如下,在信息的后面填充一個(gè)1和無數(shù)個(gè)0,直到滿足上面的條件時(shí)才停止用0對(duì)信息的填充。在這個(gè)結(jié)果后面附加一個(gè)以64位二進(jìn)制表示的填充前信息長(zhǎng)度。
(2)經(jīng)過信息填充后,將信息分成塊,信息的位長(zhǎng)=N*512+448+64=(N+1)*512,即長(zhǎng)度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對(duì)信息長(zhǎng)度的要求。
(3)使用四個(gè)32位整數(shù)參數(shù)分別以A、B、C、D(也稱鏈接變量)來表示,這些參數(shù)用于第一輪的運(yùn)算,分別為:A=0x01234567,B=0x89ABCDEF,C=0xFEDCBA98,D=0x76543210。
(4)對(duì)劃分出來的信息塊采用四輪循環(huán)進(jìn)行運(yùn)算。具體算法流程如下:將上面四個(gè)鏈接變量復(fù)制到另外四個(gè)變量中:A到a,B到b,C到c,D到d,進(jìn)行16次操作。這是一輪循環(huán),這種循環(huán)要進(jìn)行四輪才能完成所有的信息塊的運(yùn)算。
2 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)的設(shè)計(jì)
本系統(tǒng)主要包括用戶管理、知識(shí)庫(kù)、信息跟蹤服務(wù)和系統(tǒng)維護(hù)四大功能模塊。
(1)用戶管理模塊:包括用戶登錄、添加用戶、用戶查詢和修改密碼四個(gè)子模塊。
(2)知識(shí)庫(kù)模塊:由知識(shí)庫(kù)結(jié)構(gòu)、知識(shí)庫(kù)維護(hù)和知識(shí)搜索三個(gè)部分組成。
(3)信息跟蹤服務(wù)模塊:信息跟蹤服務(wù)模塊是用戶登錄后,填寫個(gè)人心理晴雨表、跟蹤時(shí)間,預(yù)警程度,實(shí)現(xiàn)在線心理咨詢,與咨詢師說心理悄悄話,以及給咨詢師發(fā)送E-mail等功能。
(4)系統(tǒng)維護(hù)模塊:主要包括數(shù)據(jù)庫(kù)與網(wǎng)頁的維護(hù),以及系統(tǒng)的安全性管理三個(gè)方面。
2.2 系統(tǒng)的實(shí)現(xiàn)
該系統(tǒng)中涉及到多個(gè)模塊的共同協(xié)作,每個(gè)模塊之間都存在著內(nèi)在的聯(lián)系,系統(tǒng)通過Struts+Jsp技術(shù)配合前端開發(fā)語言合作完成前臺(tái)的信息展示,應(yīng)用Hibernate管理系統(tǒng)與數(shù)據(jù)庫(kù)的信息交互,通過Spring對(duì)頁面和數(shù)據(jù)的業(yè)務(wù)邏輯進(jìn)行控制,實(shí)現(xiàn)本系統(tǒng)的信息跟蹤功能。
3 MD5算法在系統(tǒng)中的應(yīng)用
MD5在數(shù)據(jù)的機(jī)密性方面的應(yīng)用是利用它的單向性,即不可逆性。在心理健康跟蹤系統(tǒng)中,為了加強(qiáng)系統(tǒng)的安全性,對(duì)用戶密碼再進(jìn)行了加密,利用MD5的不可逆性,即使得到了整個(gè)數(shù)據(jù)庫(kù),也無法得到密碼。
實(shí)現(xiàn)MD5算法的核心代碼如下:
Public static String stringToMD5(String str){
try{
byte[]strTemp=str.getBytes();MessageDigest md=MessageDigest.getInstance(\"MD5\");
md.update(strTemp);
return toHexString(md.digest());
}catch(Exception e){
e.printStackTrace();
return 1;
}
}
private static String toHexString(byte[] md){
char[]hexDigits={'0','1','2','3','4','5','6','7','8','9','a','b','c', 'd', 'e','f',};
int j=hexDigits.length;
char[]str=new char[j*2];
for(int i=0;i byte byteo=md[i]; str[2*i]=hexDigits[byteo>>>40xf]; str[2*i+1]=hexDigits[byteo0xf]; } return new String(str); } 4 結(jié)束語 本文實(shí)現(xiàn)了基于MD5算法的大學(xué)生心理健康跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),利用MD5的不可逆性,采用對(duì)用戶密碼進(jìn)行再次加密的方法改進(jìn)了MD5算法,增加了算法的復(fù)雜性和不可逆性,同時(shí)更進(jìn)一步保證了系統(tǒng)的安全性。 參考文獻(xiàn): [1]張裔智,趙毅,湯小斌.MD5算法研究[J].計(jì)算機(jī)科學(xué),2008(07):295-297. [2]張紹蘭,邢國(guó)波,楊義先.對(duì)MD5的改進(jìn)及其安全性分析[J].計(jì)算機(jī)應(yīng)用,2009(29):947-949. [3]鄭之華.MD5算法在統(tǒng)一用戶管理系統(tǒng)中身份認(rèn)證的應(yīng)用[J].齊齊哈爾大學(xué)學(xué)報(bào),2012(02):76-80. [4]Rivest R.TheMD5M essage-Digest A lgor ithm[S].RFC 1321,April,1992. [5]陳世偉,金晨輝.MD5碰撞攻擊中的充要條件集[J].軟件學(xué)報(bào),2009(06):1617-1624. 作者簡(jiǎn)介:何曉薇,女,廣東潮汕人,碩士,助理館員,研究方向:教育管理信息化、應(yīng)用心理學(xué)。 作者單位:廣東科學(xué)技術(shù)職業(yè)學(xué)院,廣東珠海 519090