盧志強 上海鐵路局信息技術所
隨著智能手機的快速普及,智能手機操作系統市場風生水起。為了讓智能手機用戶能夠隨時隨地查詢互聯網所提供的服務,一種高效的辦法就是將應用系統的功能拓展到手機終端上,讓手機能夠通過移動網以及互聯網訪問Web網站并處理各種各樣的業務。因此,智能手機的應用軟件及其需要的服務將有廣闊的發展前景。對于鐵路辦公管理來說,需要找到適應社會的高效率、低成本和快節奏的方法,安卓平臺具有無限的吸引力。
安卓平臺鐵路人事辦公系統是一個基于安卓手機平臺的應用系統,該系統實現了人事部門領導在任何時間、任何地點都能使用安卓智能手機讀取相關人事信息,處理相關人事業務的功能。鐵路人事辦公系統的上線使得人事辦公擺脫了時間和場所的局限,人事部門領導可以隨時進行人事管理工作,有效提高管理的效率。考慮到人事信息的安全保密,利用DES算法對數據進行加密,DES算法是安全性比較高的一種算法,目前只有一種方法可以破解該算法,那就是窮舉法,它采用64位密鑰技術,實際只有56位有效,8位用來校驗的.譬如,有這樣的一臺PC機器,它能每秒計算一百萬次,那么256位空間它要窮舉的時間為2285年.所以這種算法還是比較安全的一種算法。
隨著智能手機的普及,移動辦公技術得到了迅猛的發展。這種全新的辦公模式,通過在手機上安裝企業信息化軟件,使得手機也具備了和電腦一樣的辦公功能,而且它還擺脫了必須在固定場所固定設備上進行辦公的限制,對企業管理者和商務人士提供了極大便利,為企業和政府的信息化建設提供了全新的思路和方向。它不僅使得辦公變得隨心、輕松,而且借助手機通信的便利性,使得使用者無論身處何種緊急情況下,都能高效迅捷地開展工作,對于突發性事件的處理、應急性事件的部署有極為重要的意義。
安卓是一種基于Linux的自由及開放源代碼的操作系統,主要使用于便攜設備,如智能手機和平板電腦。開放手機聯盟(OHA)成員可以任意使用和修改安卓的SDK軟件包。這款軟件包括了操作系統、用戶界面和應用程序,即智能手機工作所需要的全部軟件。安卓的最大特點是其開放性體系架構,為眾多移動應用開發者提供了良好的系統性平臺,不僅具有移動應用的集合,并且可以針對自身的特殊需要“定制化開發”,而且還支持各種可擴展的用戶體驗,包括豐富的圖形組件、多媒體支持功能以及強大的瀏覽器。 安卓操作系統發展迅猛主要得益于免費、開源和良好產業運作策略,這三點為安卓在智能手機市場贏得更多的發展機遇。系統的免費讓更多的廠商加入,推動了份額的上升;代碼的開源讓更多的開發者進入應用開發;應用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學習的地方。此外,谷歌通過OHA聯合眾多廠商進行系統研發,不斷更新版本,將系統應用推廣到更多的終端產品中,確保用戶體驗持續改善。
DES使用一個 56位的密鑰以及附加的 8位奇偶校驗位,產生最大 64位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中一半應用循環功能,然后將輸出與另一半進行"異或"運算;接著交換這兩半,這一過程會繼續下去,但最后一個循環不交換。DES使用 16個循環,使用異或,置換,代換,移位操作四種基本運算。
(1)了解安卓應用程序的設計和開發過程。
(2)保障數據的安全保密,利用DES算法對數據文件進行加解密。
鐵路人事辦公系統建立在安卓平臺上,啟動程序后能夠進行對人事機構的查看、人事所屬單位部門的查看、人事信息的詳細信息的查看,不需要網絡的訪問,降低用戶訪問位置的限制和要求,系統讓在無辦公網絡環境(如列車上、站段、車間等地方)下的用戶享受到查看到人事詳細信息帶來的便利,改變以往的紙質辦公模式,擺脫紙質文檔的束縛。系統安裝簡單,操作方便,通過定時傳送數據,我們采用了先將所有數據文件進行加密,通過安卓平臺人事辦公系統客戶端進行解密,同時對鐵路人事辦公系統的訪問也做了加密處理,保障數據的保密安全,將人事辦公系統系統化、信息化,提高人事管理水平。
程序響應速度快、安全性高、信息處理快。

圖1 總體設計
根據用戶需求從數據庫中相關的表中取出數據,根據關聯對篩選出來的數據進行處理,
考慮到信息的安全保密,不可直接使用,必須進行加密處理,這里將使用DES加密算法進行加密,生成加密文件,人事辦公系統必須通過相應的解密算法進行解密展現數據信息。
根據需求分析可以知道,應用程序應包含三個主要的用戶界面(見圖2),這里需要進一步分析每個界面中應該包括哪些顯示內容。

圖2 系統流程圖
根據客戶的需求篩選出需要的表和字段,只取出干部信息,排除掉減少人員的部門。
select a.rybm,a.xm,c.dwmc,c.dwbsm,f.dwxxbmbs,a.jg,a.csd,a.mz,a.csrq,a.hkszd,a.xb,a.jrdprq,a.cjgzrq,a.jkqk,a.xjszwmc,a.xrzwhz,a.zzmm from gg_zgjbxx a,rs_zgjbxx b,lz_dwjbxx c,lz_dwxsbmxx f where a.rybm=b.rybm and a.dwbsm=c.dwbsm and a.gbgrbs in ('02','03','05')and a.bmbm=f.dwxxbmbs and c.dwbsm like'999900020010%'and f.dwxxbmbs not like'%CCCC'
數據處理完畢后會批量生成文件供加密使用。
本系統加解密需要到的軟件包 javax.crypto為 cryptographic(加密)操作提供類和接口。在此包中定義的 cryptographic操作包括加密、密鑰生成和密鑰協商,以及消息驗證代碼 (MAC)生成。
加密支持包括對稱密碼、不對稱密碼、塊密碼和流密碼。此包還支持安全流和封裝的對象。

javax.crypto.Cipher類提供加密和解密功能,與所有的引擎類一樣,可以通過調用Cipher類中的getInstance靜態工廠方法得到Cipher對象。
public static Cipher getInstance(String transformation);
參數transformation是一個字符串,它描述了由指定輸入產生輸出所進行的操作或操作集合。參數transformation總是包含密碼學算法名稱,比如DES,也可以在后面包含模式和填充方式。參數transformation果沒有指定模式或填充方式,就使用特定提供者指定的默認模式或默認填充方式。當以流加密方式請求以塊劃分的cipher時,可以在模式名后面跟上一次運算需要操作的bit數目,例如采用“DES/CFB8/NoPadding”和“DES/OFB32/PKCS5Padding”形式的 transformation參數。如果沒有指定數目,則使用提供者指定的默認值(例如 SunJCE提供者使用的默認值是64bit)getInstance工廠方法返回的對象沒有進行初始化,因此在使用前必須進行初始化。
通過getInstance得到的Cipher對象必須使用下列四個模式之一進行初始化,這四個模式在Cipher類中被定義為final integer常數,我們可以使用符號名來引用這些模式:
ENCRYPT_MODE,加密數據
DECRYPT_MODE,解密數據
我們可以調用以下的init方法之一來初始化Cipher對象:
ecipher.init(Cipher.ENCRYPT_MODE,key,paramSpec);
dcipher.init(Cipher.DECRYPT_MODE,key,paramSpec);
必須指出的是,加密和解密必須使用相同的參數。當Cipher對象被初始化時,它將失去以前得到的所有狀態。即,初始化Cipher對象與新建一個Cipher實例然后將它初始化是等價的。
鐵路人事辦公系統自2012年7月投入使用以來,經過不斷的完善優化,實現了對整個上海鐵路局人事資源數據的全覆蓋,減少了人事管理中的復雜環節,減輕了人事部門領導的工作強度和難度,改變以往人事管理的工作方式,數據準確,實時性高,有效地提高了人事管理工作的效率。