關於加密,我之前回答過壹個網友的問題,希望對妳有所幫助。(/question/170669348.html)
深圳海之博科技有限公司的HASP dongle直接加密jar包,目前只支持J2SE,不支持J2EE。更多的還是使用java混淆器。下面是對HASP的介紹。
-
防止java加密反編譯的解決方案
眾所周知,java開發語言提供了壹個便捷的開發平臺,開發出來的程序可以很容易的移植到不同的平臺上。現在越來越多的人用它來開發軟件,與時俱進。網語。
Java有它的便利性,但也給開發者帶來了很多麻煩,就是程序代碼變得難以保護。由於Java語言編譯和代碼執行的特殊性,目前除了HASP沒有更好的解決方案或保護方案,但是如果不采取有效措施,自己辛辛苦苦開發的程序很容易被復制並據為己有。壹般情況下,大多數人為了防止反編譯,會使用java obfuscator來擾亂開發的程序。但是這種方法很容易在網上找到相關軟件重新整理,所以這個工具只能控制壹部分沒有辦法的人,對於稍微懂點工具的人來說幾乎是透明的,沒有意義。再說硬件加密鎖,大部分廠商提供的加密鎖只能用於dll連接或者簡單的api調用。只要簡單反編譯,就很容易去掉api,所以加密鎖根本就不行。有沒有更好的解決辦法?
有兩種解決方案:
1.以色列阿拉丁公司HASP HL加密鎖提供的shell加密工具中,有壹個叫數據加密的功能,可以很好的防止反編譯,去除api調用。眾所周知,硬件加密鎖的保護原理是讓加密的軟件和硬件緊密相連,調用不會被輕易消除,從而長期保護妳的軟件不被盜版。同時,這種方法使用起來非常簡單,容易被程序員掌握。保護壹個軟件只需要幾分鐘。讓我們簡單介紹壹下它的原理:
使用HASP HL的shell工具先對java解釋器進行加密,然後,如果要啟動這個解釋器,需要有壹個特定的加密鎖,然後使用shell工具中的數據加密功能將java程序(類或JAR包)加密為數據文件生成新的java程序(類或JAR包),因為這個加密過程是在鎖中完成的。采用128位AES算法,讓加密後的java程序無論用什麽反編譯工具都無法反編譯。只有加密的java解釋器有加密鎖,妳的軟件才能正常運行。如果沒有加密鎖,程序就無法運行,這樣才能真正保護妳的軟件。
2.HASP HL提供了專門針對java shell的加密工具,直接加密jar包,防止外部編譯。目前,它只支持J2SE,將來會進壹步支持J2EE。如果情況合適,是最簡單的方法。
-