国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Java的軟件安全性加強(qiáng)的方法

      文檔序號:6600988閱讀:143來源:國知局
      專利名稱:一種基于Java的軟件安全性加強(qiáng)的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及java進(jìn)行軟件開發(fā)領(lǐng)域,具體涉及一種通用的、靈活的、高可擴(kuò)展的 模塊化的代碼加密方法。
      背景技術(shù)
      當(dāng)前,世界大多數(shù)的軟件開發(fā)公司都在使用java進(jìn)行軟件開發(fā),據(jù)51Cto網(wǎng)絡(luò)統(tǒng) 計(jì),世界前20名的軟件公司,大都使用了 java進(jìn)行軟件開發(fā),java語言開發(fā)范圍涉及廣。 利用java語言開發(fā)的系統(tǒng)涉及范圍更是囊括了財(cái)務(wù)軟件,ERP軟件,物流軟件等信息管理 系統(tǒng),這些都是各軟件開發(fā)公司花費(fèi)大量的人力、物力、財(cái)力開發(fā)的軟件,甚至是公司的唯 一盈利模式,但是當(dāng)java開發(fā)的軟件經(jīng)過傳統(tǒng)的部署模式進(jìn)行部署以后,根據(jù)java的開源 性質(zhì),java軟件的運(yùn)行機(jī)制已經(jīng)被很多頂尖高手熟悉,他們開發(fā)出了可以反編譯java生成 的class文件,使得軟件對于有java知識的人暴露無遺,也使得軟件公司的心血很快被模 仿,造成軟件公司開發(fā)的產(chǎn)品迅速在市場被各公司模仿。為了解決java開發(fā)的軟件被反編譯,我們提出一種java新的部署模式,即部署的 java軟件的class文件利用我們的方法加密,進(jìn)行代碼加密,從而達(dá)到防止被反編譯。

      發(fā)明內(nèi)容
      本發(fā)明的目的是提供一種基于Java的軟件安全性加強(qiáng)的方法。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,使用代碼保護(hù)方法對java生成的class代碼 進(jìn)行加密,對Class文件進(jìn)行加密處理,使得處理后的代碼與處理前代碼完成相同的功能, 但是加密的代碼很難被反編譯,即反編譯后得出的代碼是非常難懂、晦澀的加密后文件,因 此反編譯人員很難得出程序的真正語義,這樣即保證java開發(fā)軟件的跨平臺特性,又防止 開發(fā)的軟件被別人反編譯后輕易獲取,達(dá)到了保護(hù)軟件的目的,該方法包括對class文件 的加密過程和class文件在被jvm加載時執(zhí)行前的解密過程,步驟如下1)在程序代碼完成后,對生產(chǎn)的class文件進(jìn)行加密,并保存加密算法,以在jvm 執(zhí)行時得到解密方法;2) Jvm執(zhí)行時通過load Class進(jìn)行class文件加載,在加載過程中,首先得到文件 的加密算法,根據(jù)對應(yīng)的解密算法對文件進(jìn)行解密,然后轉(zhuǎn)交jvm執(zhí)行。根據(jù)我們內(nèi)部定義的加密方法,首先對生成的class文件進(jìn)行加密,然后打包,客 戶安裝部署后,暴露給客戶的是加密后的class文件,反編譯人員無法通過反編譯得到正 確的代碼,保證了源代碼安全。程序被安裝、部署以后,在執(zhí)行過程中,首先通過jvm調(diào)用我們重載過的 IoadClass類,對加密的class文件進(jìn)行加載,并根據(jù)對應(yīng)的加密算法對class文件進(jìn)行解 密,然后把主動權(quán)交與jvm對class文件執(zhí)行,實(shí)現(xiàn)程序的正常引導(dǎo)和使用。本發(fā)明的Java生成的class文件的加密方法使用后的優(yōu)異效果是,我們可以利用 當(dāng)前比較流行的對稱加、解密算法進(jìn)行。對生成的class代碼進(jìn)行加密,在執(zhí)行時進(jìn)行解密,從而達(dá)到保護(hù)代碼的目的。


      附圖1為傳統(tǒng)的java執(zhí)行過程示意圖;附圖2為經(jīng)過保護(hù)的java執(zhí)行過程示意圖;附圖3為傳統(tǒng)的class文件被反編譯示意圖;附圖4為加密后的class文件被編譯過程示意圖。
      具體實(shí)施例方式參照說明書附圖對本發(fā)明的作以下詳細(xì)地說明。參考附圖1,傳統(tǒng)的java文件執(zhí)行過程傳統(tǒng)的部署,我們生成的class文件打成jar包,進(jìn)行程序發(fā)布,當(dāng)安裝了 java虛 擬機(jī)以后,jvm根據(jù)程序的配置進(jìn)行jar的加載,讀取到其中的class文件進(jìn)行執(zhí)行。此處 class文件可被反編譯參考附圖2,保護(hù)的java執(zhí)行過程根據(jù)我們內(nèi)部定義的加密方法,首先對生成的class文件進(jìn)行加密,然后打包,客 戶安裝部署后,暴露給客戶的是加密后的class文件,反編譯人員無法通過反編譯得到正 確的代碼,保證了源代碼安全。程序被安裝、部署以后,在執(zhí)行過程中,首先通過jvm調(diào)用我們重載過的 IoadClass類,對加密的class文件進(jìn)行加載,并根據(jù)對應(yīng)的加密算法對class文件進(jìn)行解 密,然后把主動權(quán)交與jvm對class文件執(zhí)行,實(shí)現(xiàn)程序的正常引導(dǎo)和使用。Java運(yùn)行時裝 入字節(jié)碼的機(jī)制隱含地意味著可以對字節(jié)碼進(jìn)行修改。JVM每次裝入類文件時都需要一個 稱為ClassLoader的對象,這個對象負(fù)責(zé)把新的類裝入正在運(yùn)行的JVM。JVM給ClassLoader 一個包含了待裝入類(比如java. lang. Object)名字的字符串,然后由ClassLoader負(fù)責(zé) 找到類文件,裝入原始數(shù)據(jù),并把它轉(zhuǎn)換成一個Class對象。我們可以通過定制ClassLoader,在類文件執(zhí)行之前修改它。在這里,它的用途是 在類文件裝入之時進(jìn)行解密,因此可以看成是一種即時解密器。由于解密后的字節(jié)碼文件 永遠(yuǎn)不會保存到文件系統(tǒng),所以竊密者很難得到解密后的代碼。Java在一定程度上簡化了定制ClassLoader的構(gòu)建。在Java中,IoadClass的缺 省實(shí)現(xiàn)負(fù)責(zé)處理所有必需的步驟,但為了顧及各種定制的類裝入過程,它還調(diào)用一個新的 findClass方法。這為我們編寫定制的ClassLoader提供了一條捷徑,減少了麻煩只需覆 蓋findClass,而不是覆蓋loadClass。這種方法避免了重復(fù)所有裝入器必需執(zhí)行的公共步 驟,因?yàn)檫@一切由IoadClass負(fù)責(zé)。不過,本發(fā)明的定制ClassLoader并不使用這種方法。原因很簡單。如果由默認(rèn)的ClassLoader先尋找經(jīng)過加密的類文件,它可以找到;但由于類文件已經(jīng)加密,所以它不 會認(rèn)可這個類文件,裝入過程將失敗。因此,我們必須自己實(shí)現(xiàn)loadClassJnAT class文 件的加、解密機(jī)制,即保證了程序運(yùn)行安全,又保證了代碼安全。
      權(quán)利要求
      一種基于Java的軟件安全性加強(qiáng)的方法,其特征在于,使用代碼保護(hù)方法對java生成的class代碼進(jìn)行加密,對Class文件進(jìn)行加密處理,使得處理后的代碼與處理前代碼完成相同的功能,但是加密的代碼很難被反編譯,即反編譯后得出的代碼是非常難懂、晦澀的加密后文件,因此反編譯人員很難得出程序的真正語義,這樣即保證java開發(fā)軟件的跨平臺特性,又防止開發(fā)的軟件被別人反編譯后輕易獲取,達(dá)到了保護(hù)軟件的目的,該方法包括對class文件的加密過程和class文件在被jvm加載時執(zhí)行前的解密過程,步驟如下1)在程序代碼完成后,對生產(chǎn)的class文件進(jìn)行加密,并保存加密算法,以在jvm執(zhí)行時得到解密方法;2)Jvm執(zhí)行時通過load Class進(jìn)行class文件加載,在加載過程中,首先得到文件的加密算法,根據(jù)對應(yīng)的解密算法對文件進(jìn)行解密,然后轉(zhuǎn)交jvm執(zhí)行。
      全文摘要
      本發(fā)明提供一種基于Java的軟件安全性加強(qiáng)的方法是根據(jù)我們內(nèi)部定義的加密方法,首先對生成的class文件進(jìn)行加密,然后打包,客戶安裝部署后,暴露給客戶的是加密后的class文件,反編譯人員無法通過反編譯得到正確的代碼,保證了源代碼安全。程序被安裝、部署以后,在執(zhí)行過程中,首先通過jvm調(diào)用我們重載過的loadClass類,對加密的class文件進(jìn)行加載,并根據(jù)對應(yīng)的加密算法對class文件進(jìn)行解密,然后把主動權(quán)交與jvm對class文件執(zhí)行,實(shí)現(xiàn)程序的正常引導(dǎo)和使用。
      文檔編號G06F21/24GK101814124SQ20101015056
      公開日2010年8月25日 申請日期2010年4月20日 優(yōu)先權(quán)日2010年4月20日
      發(fā)明者曹其順 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1