程序加密?你說的是代碼加密還是數(shù)據(jù)加密。我都說一下吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、福鼎網(wǎng)站維護、網(wǎng)站推廣。
Java代碼加密:
這點因為Java是開源的,想達到完全加密,基本是不可能的,因為在反編譯的時候,雖然反編譯回來的時候可能不是您原來的代碼,但是意思是接近的,所以是不行的。
那么怎么增加反編譯的難度(閱讀難度),那么可以采用多層繼承(實現(xiàn))方式來解決,這樣即使反編譯出來的代碼,可讀性太差,復(fù)用性太差了。
Java數(shù)據(jù)加密:
我們一般用校驗性加密,常用的是MD5,優(yōu)點是速度快,數(shù)據(jù)占用空間小。缺點是不可逆,所以我們一般用來校驗數(shù)據(jù)有沒有被改動等。
需要可逆,可以選用base64,Unicode,缺點是沒有密鑰,安全性不高。
而我們需要可逆而且采用安全的方式是:對稱加密和非堆成加密,我們常用的有AES、DES等單密鑰和雙密鑰的方式。而且是各種語言通用的。
全部手動敲字,望采納,下面是我用Javascript方式做的一系列在線加密/解密工具:
可以的,但是對jar包直接加密,目前只支持J2SE,還不支持J2EE。更多的還是用混編器(java obfuscator)。下面是關(guān)于HASP的介紹。
-----------------------------------------------------
針對java加密防止反編譯的解決方案
眾所周知,java開發(fā)語言提供了很方便的開發(fā)平臺,開發(fā)出來的程序很容易在不同的平臺上被移植,現(xiàn)在越來越多的人使用它來開發(fā)軟件,與.net語言并駕齊驅(qū)。
Java有它方便的一面,同時也給開發(fā)者帶來了一個不小的煩惱,就是保護程序代碼變得困難,因為java語言編譯和代碼執(zhí)行的特殊性,目前,除了HASP外,還沒有一個更好的解決辦法或保護方案,但如果不采取有力的措施,則自己辛辛苦苦開發(fā)出來的程序很容易被人復(fù)制而據(jù)為己有,一般情況下,大多數(shù)的人都是用混編器(java obfuscator)來把開發(fā)出來的程序進行打亂,以想達到防止反編譯的目的,但是,這種方法在網(wǎng)上很容易找到相關(guān)的軟件來重新整理,那么這個混編器工具也只能控制一些本來就沒有辦法的人,而對于稍懂工具的人幾乎是透明的,沒有任何意義。再說硬件加密鎖,大多數(shù)廠商提供的加密鎖只能進行dll的連接或簡單的api調(diào)用,只要簡單地反編譯,就很容易把api去掉,這樣加密鎖根本起不了作用,那到底是否還有更好的解決辦法呢?
現(xiàn)提供2種解決辦法:
1、以色列阿拉丁公司的HASP HL加密鎖提供的外殼加密工具中,有一個叫做數(shù)據(jù)加密的功能,這個功能可以很好的防止反編譯而去掉api的調(diào)用,大家知道:硬件加密鎖的保護原理就是讓加密過的軟件和硬件緊密地連接在一起,調(diào)用不會輕易地被剔除,這樣才能持久地保護您的軟件不被盜版,同時,這種方式使用起來非常簡單,很容易被程序員掌握,要對一個軟件實現(xiàn)保護,大約只需幾分鐘的時間就可以了,下面簡單介紹一下它的原理:
運用HASP HL的外殼工具先把java解釋器進行加密,那么,如果要啟動這個解釋器就需要有特定的加密鎖存在,然后,再運用外殼工具中的數(shù)據(jù)加密功能把java程序(CLASS或JAR包)當作一個數(shù)據(jù)文件來進行加密處理,生成新的java程序(CLASS或JAR包),因為這個加密過程是在鎖內(nèi)完成的,并采用了128位的AES算法,這樣,加密后的java程序,無論你采用什么樣的反編譯工具,都是無法反編譯出來的。您的軟件也只有被加密過的java解釋器并有加密鎖的情況下才能正常運行,如果沒有加密鎖,程序不能運行,從而達到真正保護您的軟件的目的。
2、HASP HL提供專門針對java外殼加密工具,直接加密jar包,防止外編譯,目前只支持J2SE,將來會進一步支持J2EE,如果情況適合則是最簡單的方法。
可以使用加密鎖硬件對java進行加密,可以通過加殼的形式防止代碼被反編譯,也可以在Java代碼中進行開發(fā),硬件加密安全性唯一性更高。可以試試ROCKEY系列加密鎖,價格也不貴,加密簡單。
很久前做過一個項目,用很復(fù)雜的算法加密 class文件,然后在虛擬機載入前調(diào)用解密程序。用的是 jvmti。這樣可以防止class loader被反編譯導(dǎo)致加解密算法泄漏,應(yīng)該算比較好的一種解決方案了。
分享文章:java防止代碼加密 java中常見的加密方式
網(wǎng)站路徑:http://chinadenli.net/article24/hpjhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、商城網(wǎng)站、自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)