java進階之加密_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Java補充內(nèi)容,加密與解密,密碼學基本功能,機密性僅有發(fā)送方和接收方可以理解報文內(nèi)容鑒別發(fā)送方和接收方都能證實對方身份報文完整性確保報文傳輸過程中完整且未被改變不可否認性接收方可以證實報文來自于指定的發(fā)送方,密碼學基本模型,發(fā)送方,加密算法,解密算法,接收方,密鑰源,密碼學五元組:明文、密文、加密算法、解密算法、密鑰,加密與解密算法是公開的,密鑰+規(guī)則=密碼,密碼學基本分類,消息編碼Base64消息摘要MD類、SH

2、A類、MAC類對稱密碼DES、3DES、AES非對稱密碼RSA、DH密鑰交換數(shù)字簽名RSASignature、DSASignature,對稱密碼相當于一把鑰匙配一把鎖,Base64加密和解密,加密語法:new BASE64Encoder().encode(byte[] data)解密語法:new BASE64Decoder().decodeBuffer(String data),BASE64加密結(jié)果是:d2

3、Fuc2hpa2VqaQ==,解密后的值是:wanshikeji,消息摘要概述,概念是唯一對應(yīng)一個消息中文本固定長度的值,由一個單向Hash加密函數(shù)對消息進行作用而產(chǎn)生算法又稱為散列算法,因為散列函數(shù)的單向性使得消息摘要算法擁有高度的安全性分類MD(Message Digest):消息摘要算法SHA(Secure Hash Algorithm):安全散列算法MAC(Message Authentication Cod

4、e):消息認證碼算法,日常應(yīng)用:驗證數(shù)據(jù)完整性,防止在傳輸過程中數(shù)據(jù)被篡改,MD5加密,概述對任意長度的數(shù)據(jù),加密為128位的摘要碼加密步驟初始化加密類MessageDigest md5=MessageDigest.getInstance(“MD5”);更新源數(shù)據(jù)md5.update(data);生成摘要(加密)byte[] result=md5.digest();,注意:生成的字節(jié)數(shù)組可讀性差,一般會轉(zhuǎn)換為16

5、進制字符串用于顯示。,字節(jié)數(shù)組轉(zhuǎn)換為16進制,MD5正常加密值如源:wanshikeji 加密后:[B@453807字節(jié)數(shù)組轉(zhuǎn)換為16進制public static String fromBytesToHex(byte[] resultBytes){StringBuilder builder=new StringBuilder();for(int i=0;i<resultBytes.length;i++){

6、if(Integer.toHexString(0XFF&resultBytes[i]).length()==1){builder.append("0").append(Integer.toHexString(0XFF&resultBytes[i]));}else{builder.append(Integer.toHexString(0XFF&resultBytes[i]));

7、}}return builder.toString();},轉(zhuǎn)換后結(jié)果是:92d830f28c0fde7c7335871eab646e90,SHA算法,SHA算法安全哈希算法,主要適用于數(shù)字簽名標準里面定義的數(shù)字簽名算法SHA算法分類SHA-1:為任意長度數(shù)據(jù)生成160位的摘要信息SHA-256SHA-384SHA-512,生成的摘要長度越長,安全性越高,不同文件的加密結(jié)果重復的機率越小,SHA算法實現(xiàn),實現(xiàn)步

8、驟:初始化MessageDigest.getInstance(“SHA”);更新sha.update(byte[] data)生成摘要sha.digest();轉(zhuǎn)換為16進制便于觀察,wanshikeji:轉(zhuǎn)換前摘要結(jié)果為:[B@3c0007,轉(zhuǎn)換后加密結(jié)果為: 1bfbd9086205bc6496ba45e417ae1a84e8f81082,HMAC算法,MD算法與SHA算法的缺點:MD與SHA沒有密鑰加密,中間摘要很

9、容易被篡改。如黑客中途截獲了數(shù)據(jù)和摘要并進行了匹配篡改,就會使得數(shù)據(jù)傳輸出現(xiàn)在安全問題,所以要HMACHMACHMAC結(jié)合了MD5與SHA算法的優(yōu)勢,同時用密鑰對摘要進行加密,是一種更為安全的消息摘要算法。本質(zhì)是使用了密鑰加密的MD與SHA算法,HMAC使用,生產(chǎn)密鑰步驟//初始化KeyGenerator keygen=KeyGenerator.getInstance("HmacMD5");//產(chǎn)生密

10、鑰SecretKey secretKey=keygen.generateKey();//生成字節(jié)數(shù)組return secretKey.getEncoded();思考?密鑰存儲應(yīng)用使用何種形式?密鑰轉(zhuǎn)換字節(jié)數(shù)組保存更方便,在網(wǎng)絡(luò)上也可以直接傳輸,而且書寫移交方便。,HMAC使用,使用密鑰進行加密//從字節(jié)數(shù)組還原密鑰SecretKey seckey=new SecretKeySpec(key,"HmacMD5&q

11、uot;);//實例化MacMac mac=Mac.getInstance("HmacMD5");//用密鑰初始化Macmac.init(seckey);//執(zhí)行加密byte[] resultBytes = mac.doFinal();,為了便于觀察,學轉(zhuǎn)換為16進制字符表示。,散列函數(shù)特征,輸入任意長度數(shù)據(jù),輸出固定長度散列值計算很容易,過程不可逆對于某數(shù)據(jù),其散列值固定兩個數(shù)據(jù)字節(jié)不同,則對應(yīng)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論