儲小寒 胡景
摘要:數(shù)字指紋作為計(jì)算機(jī)安全領(lǐng)域廣泛應(yīng)用的一種散列函數(shù),用以提供信息完整性的保護(hù),采用數(shù)字指紋和XML等技術(shù)對用戶登錄系統(tǒng)進(jìn)行設(shè)計(jì)及實(shí)現(xiàn),并通過MD5技術(shù)解決實(shí)際應(yīng)用中數(shù)據(jù)安全性的問題,使系統(tǒng)更為安全和靈活。
關(guān)鍵詞:XML;MD5;SAX;JSP;用戶登錄模塊
中圖分類號:TB
文獻(xiàn)標(biāo)識碼:A
doi:10.19311/j.cnki.16723198.2017.01.097
0引言
目前大量的小型網(wǎng)站,由于資金和技術(shù)的限制,無法實(shí)現(xiàn)用戶信息的安全存儲,這些小型網(wǎng)站迫切需要一個輕便、安全的登錄模塊。XML是一種可擴(kuò)展的標(biāo)記語言,可以輕松的跨平臺應(yīng)用。用戶數(shù)據(jù)通過MD5加密和BASE64編碼,其中MD5具有很強(qiáng)的抗修改特性和不可逆轉(zhuǎn)性,對原數(shù)據(jù)進(jìn)行任何改動后所得到的MD5值都有本質(zhì)的區(qū)別。這些方式使得數(shù)據(jù)對任何對象處于加密狀態(tài),使得密碼破解成本增加?;跀?shù)字指紋和XML的用戶登錄模塊保障用戶數(shù)據(jù)的安全。
1模塊設(shè)計(jì)
1.1設(shè)計(jì)思路
用戶登錄模塊是用戶進(jìn)入系統(tǒng)的入口,傳統(tǒng)意義上需要一個數(shù)據(jù)庫存儲用戶信息在登陸時進(jìn)行匹配驗(yàn)證,這就需要安裝和支持一個分離的服務(wù)器進(jìn)程,且在對數(shù)據(jù)進(jìn)行操作時需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換再返回操作結(jié)果?;赬ML文件存儲的數(shù)據(jù)可以直接由應(yīng)用服務(wù)器進(jìn)行解析,在從解析結(jié)果中選擇合適的內(nèi)容發(fā)送到客戶端,基于這種模式可以減少服務(wù)器額外的負(fù)擔(dān)。同時MD5和BASE64混合加密在Web編程技術(shù)中的優(yōu)勢以及在B/S結(jié)構(gòu)的身份認(rèn)證系統(tǒng)中即使系統(tǒng)數(shù)據(jù)信息被泄露,用戶的密碼也不會被破解,更加有效的保證了用戶的密碼安全。
1.2系統(tǒng)模塊
系統(tǒng)的主要模塊如圖1所示。
1.3功能模塊
功能包括用戶注冊、用戶登錄、用戶注銷主要模塊,同時在用戶登錄中有會員模式登錄以及游客模式登錄兩個子模塊如圖2所示。
2模式設(shè)計(jì)
我們的系統(tǒng)采用MVC設(shè)計(jì)模式。這種設(shè)計(jì)模式把用戶的輸入、處理、輸出按照model、view、controller進(jìn)行分離。
視圖(view)主要代表人機(jī)交互界面。它包含了數(shù)據(jù)的采集,以及用戶的請求,它包含在視圖上的業(yè)務(wù)處理流程。模型(model)業(yè)務(wù)流程狀態(tài)的處理以及業(yè)務(wù)規(guī)則的指定。業(yè)務(wù)流程的具體執(zhí)行過程對它來說是黑箱操作。模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。
控制器(controller)從用戶接收數(shù)據(jù),將視圖和模型匹配在一起。共同完成用戶的請求。
在我們的系統(tǒng)中采用Servlet作為控制器,JSP作為視圖,模型由JAVABEAN實(shí)現(xiàn)。
3系統(tǒng)實(shí)現(xiàn)
3.1xml文檔實(shí)現(xiàn)用戶信息的存儲
本系統(tǒng)的數(shù)據(jù)存儲基礎(chǔ)是xml文件,xml文檔集相當(dāng)于一個小型的數(shù)據(jù)庫,具有與數(shù)據(jù)庫相同的基本功能(CRUD),但是與數(shù)據(jù)庫有具有不同之處,使用數(shù)據(jù)庫的程序會嚴(yán)重依賴于某種特定的數(shù)據(jù)庫管理系統(tǒng)(DBMS),造成在異構(gòu)系統(tǒng)之間很難交換數(shù)據(jù)。xml具有良好的擴(kuò)展性同時其存儲的內(nèi)容與顯示效果分離,這十分有利于信息搜索和數(shù)據(jù)處理,便于系統(tǒng)維護(hù)和升級。
用戶記錄條目為用戶ID(id)、用戶名(username)、密碼(password)。與之相對應(yīng)的xml文件的描述為:
<?xml version="1.0" encoding="UTF-8"?>
user id = "1" username="zhangsan" password = "123456" email=”123@163.com”/>
…….
3.2xml文檔的解析方式
xml解析方式有兩種,一種是采用DOM解析方式,另外一種是采用SAX解析方式。采用SAX解析方式,允許在讀取文檔的時候?qū)ξ臋n進(jìn)行處理而不必等到整個文檔都裝載完成時讀取文檔。采用這樣的解析方式在讀取容量大的xml文檔時,可以減輕整個計(jì)算機(jī)的壓力。
本系統(tǒng)的xml的組織結(jié)構(gòu)如下:
3.3登錄界面
本系統(tǒng)將采用jsp來呈現(xiàn)頁面,同時我們也可以通過jsp來收集用戶在頁面提交的數(shù)據(jù)。
用戶登錄界面主要是由兩個部分組成,一個部分是用戶的輸入界面,還有一個部分是用戶方式的選擇。
登陸界面設(shè)計(jì)如下:
用戶:
密碼:
3.4登錄界面處理
在用戶登錄中有兩種模式一種是普通登錄另一種是以游客登錄。普通用戶的登錄:在Servlet中利用request對象收集到來自登錄界面的用戶名和密碼,對獲取的密碼采用MD5加密之后與XML匹配。然后調(diào)用控制部分的login方法,若login返回的user對象不為空,即用戶登錄成功,隨后跳轉(zhuǎn)到首頁。反之登錄失敗。
登錄處理流程如下:
在游客登錄模式中會將Session的存在時間設(shè)置10分鐘,到了時間之后網(wǎng)站會自動跳轉(zhuǎn)到消息顯示頁面,告知用戶如需在使用需要注冊。
3.5注冊頁面處理
用戶注冊界面的主要功能是處理登錄界面提交過來的用戶注冊請求。用戶界面的業(yè)務(wù)邏輯分為兩部分,第一步是對用戶提交過來的數(shù)據(jù)進(jìn)行校驗(yàn)。第二步是對校驗(yàn)成功的數(shù)據(jù)通過調(diào)用service層來實(shí)現(xiàn)向xml文件注入?;谲浖こ痰睦砟睿簺]有經(jīng)過校驗(yàn)的數(shù)據(jù)是不能使用的。由此可見數(shù)據(jù)校驗(yàn)的重要性。
下面展示的是郵箱的校驗(yàn)過程。
在用戶數(shù)據(jù)校驗(yàn)成功的前提下才調(diào)用service的register方法將用戶注冊到xml中,但是在注冊用戶之前還會依據(jù)md5加密算法將用戶的密碼進(jìn)行加密計(jì)算后根據(jù)BASE64進(jìn)行重新編碼同時還會利用到UUID工具類生成一個全球唯一的ID號。當(dāng)密碼采用了加密后即使是管理員他所能查看到的密碼依然只是一串字符。這樣可以增強(qiáng)對用戶隱私的保護(hù)。
MessageDigest md = MessageDigest.getInstance("md5");
byte md5 = md.digest(message.getBytes());
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(md5);
3.6用戶注銷處理
在用戶點(diǎn)擊了用戶注銷界面后將會跳轉(zhuǎn)到logoutServlet中,在這個Servlet中將會調(diào)用Session域來移出其中的user屬性,這就代表著用戶注銷了,在用戶注銷之后將會跳轉(zhuǎn)到消息顯示界面告知用戶注銷成功,同時只會在消息顯示界面停留3s之后將會轉(zhuǎn)到首頁。
HttpSession session = request.getSession(false);
if (session!=null){
session.removeAttribute("user");
request.setAttribute("message","注銷成功,瀏覽器將在3s后跳轉(zhuǎn)");}
4結(jié)語
本系統(tǒng)在開發(fā)登錄模塊的過程中,采用MVC設(shè)計(jì)模式,將問題劃分為視圖、模型、控制三部分。采用數(shù)字指紋對數(shù)據(jù)進(jìn)行加密同時基于XML存儲數(shù)據(jù)信息,使得系統(tǒng)輕便、簡介、安全,對小型WEB應(yīng)用系統(tǒng)具有一定的參考價值。
參考文獻(xiàn)
[1]呂述望,王彥,劉振華.數(shù)字指紋綜述[J].中國科學(xué)研究生院學(xué)報,2004,(3) :291293.
[2]張峰,穆曉敏,楊守義.數(shù)字指紋技術(shù)的研究進(jìn)展[J].電訊技術(shù),2005,(5):68.
[3]和璇.MVC模式在JAVA WEB中的應(yīng)用[J].計(jì)算機(jī)光盤軟件與技術(shù),2016,(16):310311.
[4]田豐,鄒國忠.Java MVC模式在管理信息系統(tǒng)開發(fā)中的應(yīng)用[J].中小企業(yè)管理與科技,2012,(9):269270 .
[5]周軍鋒,孟小峰.XML關(guān)鍵字查詢處理研究[J].計(jì)算機(jī)學(xué)報,2012,(12):24632473.