版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java補(bǔ)充內(nèi)容,加密與解密,密碼學(xué)基本功能,機(jī)密性僅有發(fā)送方和接收方可以理解報(bào)文內(nèi)容鑒別發(fā)送方和接收方都能證實(shí)對(duì)方身份報(bào)文完整性確保報(bào)文傳輸過(guò)程中完整且未被改變不可否認(rèn)性接收方可以證實(shí)報(bào)文來(lái)自于指定的發(fā)送方,密碼學(xué)基本模型,發(fā)送方,加密算法,解密算法,接收方,密鑰源,密碼學(xué)五元組:明文、密文、加密算法、解密算法、密鑰,加密與解密算法是公開(kāi)的,密鑰+規(guī)則=密碼,密碼學(xué)基本分類,消息編碼Base64消息摘要MD類、SH
2、A類、MAC類對(duì)稱密碼DES、3DES、AES非對(duì)稱密碼RSA、DH密鑰交換數(shù)字簽名RSASignature、DSASignature,對(duì)稱密碼相當(dāng)于一把鑰匙配一把鎖,Base64加密和解密,加密語(yǔ)法:new BASE64Encoder().encode(byte[] data)解密語(yǔ)法:new BASE64Decoder().decodeBuffer(String data),BASE64加密結(jié)果是:d2
3、Fuc2hpa2VqaQ==,解密后的值是:wanshikeji,消息摘要概述,概念是唯一對(duì)應(yīng)一個(gè)消息中文本固定長(zhǎng)度的值,由一個(gè)單向Hash加密函數(shù)對(duì)消息進(jìn)行作用而產(chǎn)生算法又稱為散列算法,因?yàn)樯⒘泻瘮?shù)的單向性使得消息摘要算法擁有高度的安全性分類MD(Message Digest):消息摘要算法SHA(Secure Hash Algorithm):安全散列算法MAC(Message Authentication Cod
4、e):消息認(rèn)證碼算法,日常應(yīng)用:驗(yàn)證數(shù)據(jù)完整性,防止在傳輸過(guò)程中數(shù)據(jù)被篡改,MD5加密,概述對(duì)任意長(zhǎng)度的數(shù)據(jù),加密為128位的摘要碼加密步驟初始化加密類MessageDigest md5=MessageDigest.getInstance(“MD5”);更新源數(shù)據(jù)md5.update(data);生成摘要(加密)byte[] result=md5.digest();,注意:生成的字節(jié)數(shù)組可讀性差,一般會(huì)轉(zhuǎn)換為16
5、進(jìn)制字符串用于顯示。,字節(jié)數(shù)組轉(zhuǎn)換為16進(jìn)制,MD5正常加密值如源:wanshikeji 加密后:[B@453807字節(jié)數(shù)組轉(zhuǎn)換為16進(jìn)制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ù)字簽名標(biāo)準(zhǔn)里面定義的數(shù)字簽名算法SHA算法分類SHA-1:為任意長(zhǎng)度數(shù)據(jù)生成160位的摘要信息SHA-256SHA-384SHA-512,生成的摘要長(zhǎng)度越長(zhǎng),安全性越高,不同文件的加密結(jié)果重復(fù)的機(jī)率越小,SHA算法實(shí)現(xiàn),實(shí)現(xiàn)步
8、驟:初始化MessageDigest.getInstance(“SHA”);更新sha.update(byte[] data)生成摘要sha.digest();轉(zhuǎn)換為16進(jìn)制便于觀察,wanshikeji:轉(zhuǎn)換前摘要結(jié)果為:[B@3c0007,轉(zhuǎn)換后加密結(jié)果為: 1bfbd9086205bc6496ba45e417ae1a84e8f81082,HMAC算法,MD算法與SHA算法的缺點(diǎn):MD與SHA沒(méi)有密鑰加密,中間摘要很
9、容易被篡改。如黑客中途截獲了數(shù)據(jù)和摘要并進(jìn)行了匹配篡改,就會(huì)使得數(shù)據(jù)傳輸出現(xiàn)在安全問(wèn)題,所以要HMACHMACHMAC結(jié)合了MD5與SHA算法的優(yōu)勢(shì),同時(shí)用密鑰對(duì)摘要進(jìn)行加密,是一種更為安全的消息摘要算法。本質(zhì)是使用了密鑰加密的MD與SHA算法,HMAC使用,生產(chǎn)密鑰步驟//初始化KeyGenerator keygen=KeyGenerator.getInstance("HmacMD5");//產(chǎn)生密
10、鑰SecretKey secretKey=keygen.generateKey();//生成字節(jié)數(shù)組return secretKey.getEncoded();思考?密鑰存儲(chǔ)應(yīng)用使用何種形式?密鑰轉(zhuǎn)換字節(jié)數(shù)組保存更方便,在網(wǎng)絡(luò)上也可以直接傳輸,而且書(shū)寫(xiě)移交方便。,HMAC使用,使用密鑰進(jìn)行加密//從字節(jié)數(shù)組還原密鑰SecretKey seckey=new SecretKeySpec(key,"HmacMD5&q
11、uot;);//實(shí)例化MacMac mac=Mac.getInstance("HmacMD5");//用密鑰初始化Macmac.init(seckey);//執(zhí)行加密byte[] resultBytes = mac.doFinal();,為了便于觀察,學(xué)轉(zhuǎn)換為16進(jìn)制字符表示。,散列函數(shù)特征,輸入任意長(zhǎng)度數(shù)據(jù),輸出固定長(zhǎng)度散列值計(jì)算很容易,過(guò)程不可逆對(duì)于某數(shù)據(jù),其散列值固定兩個(gè)數(shù)據(jù)字節(jié)不同,則對(duì)應(yīng)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java加密技術(shù)
- 客服進(jìn)階路之推薦產(chǎn)品
- 動(dòng)作描寫(xiě)之進(jìn)階練習(xí)(一)
- 動(dòng)作描寫(xiě)之進(jìn)階練習(xí)(一)
- 基于java的文件加密解密
- java課程設(shè)計(jì)--加密與解密
- java課程設(shè)計(jì)---加密和解密
- java文件加密解密課程設(shè)計(jì)
- java課程設(shè)計(jì) -- 文件加密與解密
- 文件加密與解密—java課程設(shè)計(jì)報(bào)告
- java入門攻略之helloworld問(wèn)題
- sap進(jìn)階4-財(cái)務(wù)總覽之管理會(huì)計(jì)總論
- 數(shù)據(jù)庫(kù)加密及身份認(rèn)證的Java實(shí)現(xiàn).pdf
- 基于JAVA的數(shù)據(jù)加密傳輸方案的研究.pdf
- 客服進(jìn)階路之100條溝通萬(wàn)能金句
- java課程設(shè)計(jì)文本文檔的加密與解密
- java類文件混合加密算法的研究與分析.pdf
- java從菜鳥(niǎo)到高手之設(shè)計(jì)模式
- 輕松學(xué)java web開(kāi)發(fā)之javabean基礎(chǔ)
- java從菜鳥(niǎo)到高手之設(shè)計(jì)模式
評(píng)論
0/150
提交評(píng)論