蒙泳行
摘 要目前,公司的技術文件網(wǎng)系統(tǒng)部署由單數(shù)據(jù)源單文件系統(tǒng)改成了單數(shù)據(jù)源多文件系統(tǒng),如此做減輕了遵義事業(yè)部對貴陽總部的網(wǎng)絡訪問量,同時加快了遵義事業(yè)部技術網(wǎng)的訪問速度。文件同步我們使用軟件BestSync2010實現(xiàn),但是還沒有做文件一致性檢查,本文探討文件系統(tǒng)分布部署的文件一致性問題的處理方法,使用MD5算法實現(xiàn)。
【關鍵詞】文件系統(tǒng) 一致性檢查 MD5
1 引言
公司的技術文件網(wǎng)系統(tǒng)是一個技術文件管理、查詢系統(tǒng),生產(chǎn)工人通過系統(tǒng)網(wǎng)頁,輸入查詢條件,查詢到相應技術文件,指導生產(chǎn)。系統(tǒng)也包含了權限管理、文件加解密等功能,本文不做討論。系統(tǒng)的web服務器部署在公司貴陽本部,技術文件存儲在貴陽本部和遵義事業(yè)部的文件服務器中。技術文件定期從貴陽本部的文件服務器同步到遵義事業(yè)部的文件服務器中。在技術文件網(wǎng)系統(tǒng)中,文件同步還沒有做文件一致性檢查,就是說遵義查看到的技術文件可能不是最新的,但是他并不知道,只能靠提高同步間隔改進;同時若同步出現(xiàn)問題,長時間沒有同步,也不易發(fā)現(xiàn),這就存在了風險。如圖1所示,本系統(tǒng)單數(shù)據(jù)源,數(shù)據(jù)庫在貴陽,貴陽、遵義都有文件系統(tǒng)和web服務器,遵義用戶訪問貴陽的web服務器,獲得技術文件的物理路徑,然后通過遵義的文件系統(tǒng)下載遵義的物理文件;這個過程無法保證在遵義下載的文件和貴陽的最新版本一致,本文探討使用MD5技術實現(xiàn)一致性檢查。
2 MD5算法原理
MD5是Message Digest Algorithm的英文簡稱,它的中文名是消息摘要算法第五版。MD5是一種散列函數(shù),在計算機安全領域被廣泛使用,它可以提供消息的完整性保護。該算法的文件號為RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。MD5是被廣使用的一種雜湊算法,java、c#等目前主流編程語言都已封裝MD5算法的實現(xiàn)。
MD5的經(jīng)典應用是生成一段信息的摘要,以驗證信息是否被篡改。MD5將整個文件看成一段字符串,然后算法通過不可逆的字符串變換,產(chǎn)生一個唯一的MD5信息摘要。就像指紋識別,人臉識別,虹膜識別等。MD5可以給任何文件生成一個MD5值,除非兩個文件完全一致,否則這個MD5值就是唯一的。所以對文件的任何改動,其MD5值也會發(fā)生改變。通常我們在網(wǎng)上下載某個軟件,都會附帶一個寫有MD5值的文件,我們可以用專門的軟件對下載回來的軟件做一次MD5檢驗,以確認下載的軟件是否被改變。
MD5算法把輸入信息分組處理,每組512位,不足部分填充,每一分組又被劃分為16個子分組,每個子分組32位,經(jīng)過了一系列的處理后,算法輸出四個32位分組,這四個32位分組級聯(lián)后,生成一個128位散列值,這128位散列值轉(zhuǎn)換成32位字符串,就是MD5值。MD5算法原理流程如圖2所示。
3 MD5在技術文件網(wǎng)的應用
技術文件網(wǎng)數(shù)據(jù)庫主表結構如表1所示。
為了實現(xiàn)MD5校驗,先給數(shù)據(jù)庫表添加一個字段:文件的MD5值。在檔案室上傳新文件,或者更新舊文件時,同時計算新文件的MD5值,并把這個MD5值更新到數(shù)據(jù)庫中。這一步需要更改文件上傳的程序,添加計算MD5值的功能。
如圖3為加入MD5校驗的技術文件網(wǎng)架構圖。當遵義用戶在查看技術文件網(wǎng)時,從貴陽網(wǎng)頁服務器獲得文件路徑的同時也得到該文件的MD5值,遵義本地的網(wǎng)頁服務器用得到的文件路徑在遵義文件服務器下載物理文件前,先計算該文件的MD5值,用計算得的MD5值與從貴陽網(wǎng)頁服務器得到的MD5值對比,如果相等,說明該遵義本地的物理文件與貴陽文件服務器中的文件完全一致,就直接下載遵義本地的物理文件。如果兩個MD5值不一致,說明該文件不是最新的,貴陽的文件還沒同步到遵義來,此時會自動轉(zhuǎn)到貴陽的文件服務器獲取最新文件。整個過程對用戶而言是封閉的,同時保證了系統(tǒng)的文件一致性。
本技術文件網(wǎng)系統(tǒng)使用J2EE技術開發(fā),MD5算法的實現(xiàn),Java語言已經(jīng)封裝在其基本類庫中,可以直接調(diào)用實現(xiàn)。經(jīng)試驗,計算100M 的pdf技術文件MD5值需要的時間為1秒鐘左右,目前技術網(wǎng)上的文件基本都在100M以內(nèi),可以滿足技術網(wǎng)對下載時間的要求。
4 結束語
在目前的技術文件網(wǎng)基礎上使用MD5算法添加文件一致性檢查,不再出現(xiàn)文件不一致的問題了。此文件一致性檢查的方法,在其他類似的單數(shù)據(jù)源多文件系統(tǒng)都可以使用。
參考文獻
[1]哈希加密算法MD5-aTool在線工具.aTool在線工具.2013-12-16.
[2]維基.維基.2013-02-3.
[3]百度百科.百度.2014-05-20.
作者單位
貴州航天電器股份有限公司 貴州省貴陽市 550009