二十一世紀人類社會正在逐步進入信息時代,信息技術被應用各個領域,提高了社會生產效率和信息傳遞及處理水平。JAVA技術是較為常見的軟件編程技術,很多應用軟件利用JAVA技術開發。AVA技術不僅繼承C++核心技術,且改進了C語言中的錯誤,更增加了垃圾回收器功能用于回收不再被引用的對象所占據的內存空間,使得程序員不用再為內存管理而擔憂,編程速度更快,效率更高,并且Java源代碼的編譯和在任何無格式的純文本編輯器下操作。但是,Java軟件相對來講抗反編譯和反盜版能力差,需運用各種加密方法,對軟件進行加密保護。本文將針對Java軟件的加密方法的應用展開研究和分析。
【關鍵詞】Java軟件 軟件加密 應用分析
JAVA軟件開發,語言使用嚴謹,避免寫出結構混亂的程序,這就起到了規范軟件結構的作用,能縮短軟件開發周期和節省成本,目前JAVA技術已成為計算機軟件開發的主流技術。但由于JAVA語言面向對象和編譯成中間字節碼執行的特點,JAVA軟件在抗反編譯能力方面比較脆弱,逆向工程方面先天不足,這導致程序容易被破解,利用IDA Pro等反編譯工具就能夠對其破壞。因此,JAVA軟件開發要采取一系列的加密措施,使用加密算法精心設計,保護軟件不被攻擊和破譯。
1 Java軟件特點
JAVA技術誕生于一九九五年,初期名字叫做Oak,后更名為JAVA。JAVA技術推出后被廣泛應用到Web軟件開發中,在Windows操作系統上使用記事本既可進行代碼編輯,Linux平臺可使用vi工具進行編輯。Java軟件特點是:結構簡單、面向對象、分布式、解釋執行、結構中立、可移植、高效能、具有多線程能力。Java語言刪除了一些容易混淆的C++功能,重載對象是函數,而非變量或是運算符。此外,增加了自動內存收集功能,能讓軟件運行速度更快。并且Java軟件能在一些獨立的小型機器上順利執行,其基本解釋器和對象類支持僅占40KB空間,而若增加基本的標準程序庫和線程支持則需增加約175KB。但相比傳統軟件依然體積非常小,所以使用方便,易于下載。并且Java是面向對象的語言,明確了接口定義,允許開發人員建立可重復使用的軟件部件。此外,Java軟件是解釋執行,移植方便,任何已移植軟件解釋器的機器上都能執行Java字節代碼。這就使得一些破解者,可以趁虛而入,利用IDA Pro等相關反編譯工具,攻擊和破譯軟件。單純使用Java語言編譯的軟件,自我防御能力差,易被破解。想要保證軟件安全,必須進行有效加密,以克服Java軟件抗破解脆弱的問題。
2 Java軟件的加密方法的應用
通過前文對Java軟件特點的分析,不難看出對Java軟件進行加密的重要性和必要性。為了避免Java軟件受到攻擊和破譯,采取加密措施具有重要意義。下面分析Java軟件加密方法的應用:
2.1 BASE
BASE是典型對稱加密算法,該技術已十分成熟,屬于一種屬于編碼格式的加密方法,是目前最為常用的加密方式,能對Bit字節代碼進行加密,能對HTTP環境下的信息進行標識加密,使編碼數據不會被人用肉眼所直接看到。例如,在Java Persistence系統Hibernate中加密方式,就是利用Base將唯一標識符編碼加密,使其無法被直接讀取。
2.2 MD
MD加密方法是當前最為廣泛使用的雜湊算法之一,加密效果好,且對于保證傳輸數據的完整性有著顯著效果,很多主流軟件都利用了MD加密方式。MD在JAVA中的應用能生成與軟件相互對應的固定長度的MD值,在使用中需要驗證MD值是否一致。并且MD加密方式下,數據運算中任意長度數據,算出的MD值長度都是固定的,且區別性很大,字符串多,和原始數據有關聯,所以一旦對原始數據進行修改,MD值都會發生明顯變化,具有較強的抗修改性,并且想要偽造MD值數據,獲取原數據的MD值也非常困難。在JAVA中的應用,可用于大數據數字前面軟件簽署秘鑰,非常值得推廣和應用。
2.3 SHA
SHA加密安全性和穩定性好,主要適用于數字簽名標準里面定義的數字簽名算法。該加密方式被需要加密專家研究并完善,其技術已非常成熟,被廣泛應用。SHA是生成個位的信息摘要明文,然后在以不可逆的方式將其轉為為一段密文,而想要讀取數據就要取得一串輸入碼,進行密文的驗證。并且這種加密方式中,生成的密文長度較短、位數固定、管理方便,且不易破解,能大大提高軟件安全性。SHA加密方式與MD值有一定相似性,但有著也有著較大區別,SHA信息摘要比MD摘要長,SHA抗攻擊能力更強,破解難度是MD指數級的操作,并且SHA密文難以被分析,所以不易遭受密碼分析攻擊。
3 結束語
Java語言是目前較為常用的軟件開發語言,編程相對簡單,軟件開發周期短,成本低。并且Java軟件性能好,運行速度快,易于移植,且體積小,使用方面。但由于Java語言的特點,導致Java軟件易于破解及遭受到攻擊。為了保證Java軟件安全性必須采取必要的加密措施,利用多種加密方法,對軟件進行加密保護。
參考文獻
[1]楊軒.高級數據加密標準AES的Java實現與應用研究[D].南京信息工程大學,2013,11:118.
[2]霍建雷.用于Java軟件保護的代碼混淆技術研究與實現[D].西北大學,2014,28:191.
[3]王勁東.目基于高級數據加密標準AES的數據庫加密技術研究與實現[D].西安電子科技大學,2013,12:122-124.
作者簡介
趙旭(1984-),男,天津市人。碩士研究生學歷。現為天津中德應用技術大學講師。研究方向為計算機軟件技術。
作者單位
天津中德應用技術大學 天津市 300350