只給編譯后的.jar文件,不給.java文件

網站建設哪家好,找創新互聯建站!專注于網頁設計、網站建設、微信開發、微信小程序定制開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了福鼎免費建站歡迎大家使用!
不過要說明的是,java因為是字節碼,所以沒有辦法防止被反編譯。
最多也就是做一下代碼混淆,比如把方法或變量名改成無意義的名稱,或者加一些完全無用的代碼進去,讓惡意攻擊的人難以看懂
基本的單向加密算法:
BASE64 嚴格地說,屬于編碼格式,而非加密算法
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鑒別碼)
復雜的對稱加密(DES、PBE)、非對稱加密算法:
DES(Data Encryption Standard,數據加密算法)
PBE(Password-based encryption,基于密碼驗證)
RSA(算法的名字以發明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
DH(Diffie-Hellman算法,密鑰一致協議)
DSA(Digital Signature Algorithm,數字簽名)
ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學)
代碼參考:
/**
*?BASE64加密
*
*?@param?key
*?@return
*?@throws?Exception
*/
public?static?String?encryptBASE64(byte[]?key)?throws?Exception?{
return?(new?BASE64Encoder()).encodeBuffer(key);
}
/**
*?MD5加密
*
*?@param?data
*?@return
*?@throws?Exception
*/
public?static?byte[]?encryptMD5(byte[]?data)?throws?Exception?{
MessageDigest?md5?=?MessageDigest.getInstance(KEY_MD5);
md5.update(data);
return?md5.digest();
}
/**
*?SHA加密
*
*?@param?data
*?@return
*?@throws?Exception
*/
public?static?byte[]?encryptSHA(byte[]?data)?throws?Exception?{
MessageDigest?sha?=?MessageDigest.getInstance(KEY_SHA);
sha.update(data);
return?sha.digest();
}
}
/**
*?初始化HMAC密鑰
*
*?@return
*?@throws?Exception
*/
public?static?String?initMacKey()?throws?Exception?{
KeyGenerator?keyGenerator?=?KeyGenerator.getInstance(KEY_MAC);
SecretKey?secretKey?=?keyGenerator.generateKey();
return?encryptBASE64(secretKey.getEncoded());
}
/**
*?HMAC加密
*
*?@param?data
*?@param?key
*?@return
*?@throws?Exception
*/
public?static?byte[]?encryptHMAC(byte[]?data,?String?key)?throws?Exception?{
SecretKey?secretKey?=?new?SecretKeySpec(decryptBASE64(key),?KEY_MAC);
Mac?mac?=?Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return?mac.doFinal(data);
}
程序加密?你說的是代碼加密還是數據加密。我都說一下吧。
Java代碼加密:
這點因為Java是開源的,想達到完全加密,基本是不可能的,因為在反編譯的時候,雖然反編譯回來的時候可能不是您原來的代碼,但是意思是接近的,所以是不行的。
那么怎么增加反編譯的難度(閱讀難度),那么可以采用多層繼承(實現)方式來解決,這樣即使反編譯出來的代碼,可讀性太差,復用性太差了。
Java數據加密:
我們一般用校驗性加密,常用的是MD5,優點是速度快,數據占用空間小。缺點是不可逆,所以我們一般用來校驗數據有沒有被改動等。
需要可逆,可以選用base64,Unicode,缺點是沒有密鑰,安全性不高。
而我們需要可逆而且采用安全的方式是:對稱加密和非堆成加密,我們常用的有AES、DES等單密鑰和雙密鑰的方式。而且是各種語言通用的。
全部手動敲字,望采納,下面是我用Javascript方式做的一系列在線加密/解密工具:
網站題目:怎么對java代碼加密 java代碼如何加密
文章出自:http://www.yijiale78.com/article44/dohepee.html
成都網站建設公司_創新互聯,為您提供網站策劃、網站營銷、做網站、企業建站、、定制網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯