内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

java代碼加密技術(shù) JAVA代碼加密

java加密的幾種方式

基本的單向加密算法:

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供建安網(wǎng)站建設(shè)、建安做網(wǎng)站、建安網(wǎng)站設(shè)計(jì)、建安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、建安企業(yè)網(wǎng)站模板建站服務(wù),十年建安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

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最常用的幾種加密算法

簡(jiǎn)單的Java加密算法有:

第一種. BASE

Base是網(wǎng)絡(luò)上最常見的用于傳輸Bit字節(jié)代碼的編碼方式之一,大家可以查看RFC~RFC,上面有MIME的詳細(xì)規(guī)范。Base編碼可用于在HTTP環(huán)境下傳遞較長(zhǎng)的標(biāo)識(shí)信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base來將一個(gè)較長(zhǎng)的唯一標(biāo)識(shí)符(一般為-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時(shí),采用Base編碼具有不可讀性,即所編碼的數(shù)據(jù)不會(huì)被人用肉眼所直接看到。

第二種. MD

MD即Message-Digest Algorithm (信息-摘要算法),用于確保信息傳輸完整一致。是計(jì)算機(jī)廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語(yǔ)言普遍已有MD實(shí)現(xiàn)。將數(shù)據(jù)(如漢字)運(yùn)算為另一固定長(zhǎng)度值,是雜湊算法的基礎(chǔ)原理,MD的前身有MD、MD和MD。

MD算法具有以下特點(diǎn):

壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的MD值長(zhǎng)度都是固定的。

容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD值很容易。

抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改個(gè)字節(jié),所得到的MD值都有很大區(qū)別。

弱抗碰撞:已知原數(shù)據(jù)和其MD值,想找到一個(gè)具有相同MD值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。

強(qiáng)抗碰撞:想找到兩個(gè)不同的數(shù)據(jù),使它們具有相同的MD值,是非常困難的。

MD的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被”壓縮”成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的十六進(jìn)制數(shù)字串)。除了MD以外,其中比較有名的還有sha-、RIPEMD以及Haval等。

第三種.SHA

安全哈希算法(Secure Hash Algorithm)主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm DSA)。對(duì)于長(zhǎng)度小于^位的消息,SHA會(huì)產(chǎn)生一個(gè)位的消息摘要。該算法經(jīng)過加密專家多年來的發(fā)展和改進(jìn)已日益完善,并被廣泛使用。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段(通常更小)密文,也可以簡(jiǎn)單的理解為取一串輸入碼(稱為預(yù)映射或信息),并把它們轉(zhuǎn)化為長(zhǎng)度較短、位數(shù)固定的輸出序列即散列值(也稱為信息摘要或信息認(rèn)證代碼)的過程。散列函數(shù)值可以說是對(duì)明文的一種“指紋”或是“摘要”所以對(duì)散列值的數(shù)字簽名就可以視為對(duì)此明文的數(shù)字簽名。

SHA-與MD的比較

因?yàn)槎呔蒑D導(dǎo)出,SHA-和MD彼此很相似。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:

對(duì)強(qiáng)行攻擊的安全性:最顯著和最重要的區(qū)別是SHA-摘要比MD摘要長(zhǎng) 位。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對(duì)MD是^數(shù)量級(jí)的操作,而對(duì)SHA-則是^數(shù)量級(jí)的操作。這樣,SHA-對(duì)強(qiáng)行攻擊有更大的強(qiáng)度。

對(duì)密碼分析的安全性:由于MD的設(shè)計(jì),易受密碼分析的攻擊,SHA-顯得不易受這樣的攻擊。

速度:在相同的硬件上,SHA-的運(yùn)行速度比MD慢。

第四種.HMAC

HMAC(Hash Message Authentication Code,散列消息鑒別碼,基于密鑰的Hash算法的認(rèn)證協(xié)議。消息鑒別碼實(shí)現(xiàn)鑒別的原理是,用公開函數(shù)和密鑰產(chǎn)生一個(gè)固定長(zhǎng)度的值作為認(rèn)證標(biāo)識(shí),用這個(gè)標(biāo)識(shí)鑒別消息的完整性。使用一個(gè)密鑰生成一個(gè)固定大小的小數(shù)據(jù)塊,即MAC,并將其加入到消息中,然后傳輸。接收方利用與發(fā)送方共享的密鑰進(jìn)行鑒別認(rèn)證等。

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等單密鑰和雙密鑰的方式。而且是各種語(yǔ)言通用的。

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

網(wǎng)站標(biāo)題:java代碼加密技術(shù) JAVA代碼加密
網(wǎng)站地址:http://www.rwnh.cn/article6/hhgsig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
延寿县| 鸡泽县| 来宾市| 云龙县| 正安县| 明光市| 南阳市| 北川| 万源市| 开化县| 金坛市| 六枝特区| 彝良县| 射洪县| 潜江市| 东城区| 营山县| 安福县| 闽清县| 泸定县| 礼泉县| 都安| 洛川县| 邵东县| 小金县| 马鞍山市| 湘潭县| 咸丰县| 克什克腾旗| 车致| 额济纳旗| 六盘水市| 噶尔县| 曲沃县| 肥东县| 无为县| 鹿邑县| 九龙县| 瓦房店市| 阿合奇县| 周口市|