真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么對(duì)java代碼加密 java代碼如何加密

怎樣為一個(gè)java程序加密? 謝謝

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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了福鼎免費(fèi)建站歡迎大家使用!

不過要說明的是,java因?yàn)槭亲止?jié)碼,所以沒有辦法防止被反編譯。

最多也就是做一下代碼混淆,比如把方法或變量名改成無意義的名稱,或者加一些完全無用的代碼進(jìn)去,讓惡意攻擊的人難以看懂

java加密的幾種方式

基本的單向加密算法:

BASE64 嚴(yán)格地說,屬于編碼格式,而非加密算法

MD5(Message Digest algorithm 5,信息摘要算法)

SHA(Secure Hash Algorithm,安全散列算法)

HMAC(Hash Message Authentication Code,散列消息鑒別碼)

復(fù)雜的對(duì)稱加密(DES、PBE)、非對(duì)稱加密算法:

DES(Data Encryption Standard,數(shù)據(jù)加密算法)

PBE(Password-based encryption,基于密碼驗(yàn)證)

RSA(算法的名字以發(fā)明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)

DH(Diffie-Hellman算法,密鑰一致協(xié)議)

DSA(Digital Signature Algorithm,數(shù)字簽名)

ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學(xué))

代碼參考:

/**

*?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程序加密,怎么做才安全

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

Java代碼加密:

這點(diǎn)因?yàn)镴ava是開源的,想達(dá)到完全加密,基本是不可能的,因?yàn)樵诜淳幾g的時(shí)候,雖然反編譯回來的時(shí)候可能不是您原來的代碼,但是意思是接近的,所以是不行的。

那么怎么增加反編譯的難度(閱讀難度),那么可以采用多層繼承(實(shí)現(xiàn))方式來解決,這樣即使反編譯出來的代碼,可讀性太差,復(fù)用性太差了。

Java數(shù)據(jù)加密:

我們一般用校驗(yàn)性加密,常用的是MD5,優(yōu)點(diǎn)是速度快,數(shù)據(jù)占用空間小。缺點(diǎn)是不可逆,所以我們一般用來校驗(yàn)數(shù)據(jù)有沒有被改動(dòng)等。

需要可逆,可以選用base64,Unicode,缺點(diǎn)是沒有密鑰,安全性不高。

而我們需要可逆而且采用安全的方式是:對(duì)稱加密和非堆成加密,我們常用的有AES、DES等單密鑰和雙密鑰的方式。而且是各種語言通用的。

全部手動(dòng)敲字,望采納,下面是我用Javascript方式做的一系列在線加密/解密工具:


分享標(biāo)題:怎么對(duì)java代碼加密 java代碼如何加密
文章出自:http://weahome.cn/article/dohepee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部