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

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

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

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

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

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

java加密的幾種方式

基本的單向加密算法:

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

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

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

Java代碼加密:

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

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

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

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

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

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

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

網(wǎng)站題目:怎么對(duì)java代碼加密 java代碼如何加密
文章出自:http://muchs.cn/article44/dohepee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站營(yíng)銷、做網(wǎng)站、企業(yè)建站、、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)