色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

運用加密技術保護Java源代碼(4)

瀏覽:18日期:2024-06-29 16:17:00
內容: if (clasz != null)return clasz;// 下面是定制部分try {// 讀取經過加密的類文件byte classData[] = Util.readFile( name+'.class' );if (classData != null) {// 解密...byte decryptedClassData[] = cipher.doFinal( classData );// ... 再把它轉換成一個類clasz = defineClass( name, decryptedClassData,0, decryptedClassData.length );System.err.println( '[DecryptStart: decrypting class '+name+']' );}} catch( FileNotFoundException fnfe ) {}// 必需的步驟2:如果上面沒有成功// 我們嘗試用默認的ClassLoader裝入它if (clasz == null)clasz = findSystemClass( name );// 必需的步驟3:如有必要,則裝入相關的類if (resolve && clasz != null)resolveClass( clasz );// 把類返回給調用者return clasz;} catch( IOException ie ) {throw new ClassNotFoundException( ie.toString());} catch( GeneralSecurityException gse ) {throw new ClassNotFoundException( gse.toString());}}}對于未經加密的應用,正常執行方式如下: % java App arg0 arg1 arg2對于經過加密的應用,則相應的運行方式為:% java DecryptStart key.data App arg0 arg1 arg2DecryptStart有兩個目的。一個DecryptStart的實例就是一個實施即時解密操作的定制ClassLoader;同時,DecryptStart還包含一個main過程,它創建解密器實例并用它裝入和運行應用。示例應用App的代碼包含在App.java、Foo.java和Bar.java內。Util.java是一個文件I/O工具,本文示例多處用到了它。完整的代碼請從本文最后下載。五、注意事項 我們看到,要在不修改源代碼的情況下加密一個Java應用是很容易的。不過,世上沒有完全安全的系統。本文的加密方式提供了一定程度的源代碼保護,但對某些攻擊來說它是脆弱的。 雖然應用本身經過了加密,但啟動程序DecryptStart沒有加密。攻擊者可以反編譯啟動程序并修改它,把解密后的類文件保存到磁盤。降低這種風險的辦法之一是對啟動程序進行高質量的模糊處理。或者,啟動程序也可以采用直接編譯成機器語言的代碼,使得啟動程序具有傳統執行文件格式的安全性。 另外還要記住的是,大多數JVM本身并不安全。狡猾的黑客可能會修改JVM,從ClassLoader之外獲取解密后的代碼并保存到磁盤,從而繞過本文的加密技術。Java沒有為此提供真正有效的補救措施。 不過應該指出的是,所有這些可能的攻擊都有一個前提,這就是攻擊者可以得到密匙。如果沒有密匙,應用的安全性就完全取決于加密算法的安全性。雖然這種保護代碼的方法稱不上十全十美,但它仍不失為一種保護知識產權和敏感用戶數據的有效方案。 參考資源 在運行時刻更新功能模塊。介紹了一個利用類庫加載器ClassLoader 實現在運行時刻更新部分功能模塊的Java程序,并將其與C/C++中實現同樣功能的動態鏈接庫方案進行了比較。 Java 技巧 105:利用 JWhich 掌握類路徑。展示一個簡單的工具,它可以清楚地確定類裝載器從類路徑中載入了什么 Java 類。 要了解更多的 Java 安全信息,請閱讀 java.sun.com的 Java Security API 頁。 如何封鎖您的(或打開別人的) Java 代碼。Java 代碼反編譯和模糊處理的指南。 使您的軟件運行起來:擺弄數字。真正安全的軟件需要精確的隨機數生成器。 下載本文代碼:EncryptedJavaClass_code.zip關于作者 俞良松,軟件工程師,獨立顧問和自由撰稿人。最初從事PB和Oracle開發,現主要興趣在于Internet開發。您可以通過 [email protected] 和我聯系。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲一区二区三区在线视频 | 日韩中文字幕在线观看 | 免费一级特黄欧美大片久久网 | a级特黄毛片免费观看 | 国内精品一区二区三区最新 | 一级一黄在线观看视频免费 | 草久在线视频 | 久久国产精品久久久 | 久久久久久久久国产 | 欧美成人高清在线视频大全 | 日韩精品中文字幕一区三区 | 97超频国产在线公开免费视频 | 国产精品亚洲欧美日韩区 | 日本一级在线播放线观看免 | 成人看片黄a免费看视频 | 国产九九精品 | 日韩欧美综合在线二区三区 | 亚洲在线影院 | 亚洲国产欧美精品一区二区三区 | 国产精品1区2区 | 欧美亚洲一区二区三区 | 高清成人爽a毛片免费网站 高清大学生毛片一级 | 18性欧美69| 久草资源在线观看 | 国产激情一区二区三区四区 | 日本一区二区三区精品视频 | 91精品国产高清久久久久久91 | 永久免费毛片在线播放 | 深夜爽爽爽福利动态图 | 国产精品视频成人 | 国产精品国产三级国产在线观看 | 久热久草| 成人欧美一区二区三区黑人免费 | 欧美一级aa免费毛片 | 亚洲精品美女在线观看播放 | 久久se精品一区精品二区 | 久久久久久久久毛片精品 | 国产成人综合视频 | 国产精品久久久久久久久福利 | 免费毛片a | 国产精品久久福利网站 |