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