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