日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

慕课网_《Java实现对称加密》学习总结

發(fā)布時間:2023/12/19 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 慕课网_《Java实现对称加密》学习总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

時間:2017年4月11日星期二
說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學示例源碼:https://github.com/zccodere/s...
個人學習源碼:https://github.com/zccodere/s...

第一章:對稱加密算法DES

1-1 JAVA對稱加密算法DES

加密密鑰=解密密鑰

對稱加密算法

初等 DES--3DES AES PBE IDEA

算法實現(xiàn):

代碼演示:

package com.myimooc.security.des;import org.apache.commons.codec.binary.Hex; import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.Security;/*** DES對稱加密演示* Created by ZC on 2017/4/11.*/ public class DemoDES {/** 待加密字符串 */private static String src="imooc security des";public static void main(String[] args){jdkDES();bcDES();}/** 使用 jdk 實現(xiàn)des加解密 */public static void jdkDES(){try {// 生成KEYKeyGenerator keyGenerator = KeyGenerator.getInstance("DES");keyGenerator.init(56);SecretKey secretKey = keyGenerator.generateKey();byte[] byteKey = secretKey.getEncoded();// KEY轉(zhuǎn)換DESKeySpec desKeySpec = new DESKeySpec(byteKey);SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");Key convertSecretKey = secretKeyFactory.generateSecret(desKeySpec);// 加密Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,convertSecretKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk des encrypt:"+ Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE,convertSecretKey);result = cipher.doFinal(result);System.out.println("jdk des decrypt:"+ new String(result));} catch (Exception e) {e.printStackTrace();}}/** 使用BouncyCastle實現(xiàn)DES加解密 */public static void bcDES(){try {Security.addProvider(new BouncyCastleProvider());// 生成KEYKeyGenerator keyGenerator = KeyGenerator.getInstance("DES","BC");keyGenerator.init(56);SecretKey secretKey = keyGenerator.generateKey();byte[] byteKey = secretKey.getEncoded();// KEY轉(zhuǎn)換DESKeySpec desKeySpec = new DESKeySpec(byteKey);SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");Key convertSecretKey = secretKeyFactory.generateSecret(desKeySpec);// 加密Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,convertSecretKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk des encrypt:"+ Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE,convertSecretKey);result = cipher.doFinal(result);System.out.println("jdk des decrypt:"+ new String(result));} catch (Exception e) {e.printStackTrace();}} }

流程演示:

第二章:對稱加密算法3DES

2-1 JAVA對稱加密算法3DES

為什么會有3重DES,DES的劣勢

1.違反柯克霍夫原則 2.安全問題

3重DES的好處

1.密鑰長度增強 2.迭代次數(shù)提高

算法實現(xiàn):

代碼演示:

package com.myimooc.security.des;import org.apache.commons.codec.binary.Hex;import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.DESedeKeySpec; import java.security.Key; import java.security.SecureRandom;/*** 3DES對稱加密演示* Created by ZC on 2017/4/11.*/ public class Demo3DES {/** 待加密字符串 */private static String src="imooc security 3des";public static void main(String[] args){jdk3des();}/** 使用jdk實現(xiàn)3重DES加解密 */private static void jdk3des(){try {// 生成KEYKeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");//keyGenerator.init(168);keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] byteKey = secretKey.getEncoded();// KEY轉(zhuǎn)換DESedeKeySpec desKeySpec = new DESedeKeySpec(byteKey);SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DESede");Key convertSecretKey = secretKeyFactory.generateSecret(desKeySpec);// 加密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,convertSecretKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk 3des encrypt:"+ Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE,convertSecretKey);result = cipher.doFinal(result);System.out.println("jdk 3des decrypt:"+ new String(result));} catch (Exception e) {e.printStackTrace();}} }

第三章:對稱加密算法AES

3-1 JAVA對稱加密算法AES

JAVA對稱加密算法:AES

AES是目前使用最多的對稱加密算法 AES的優(yōu)勢之一是至今尚未被破解 AES通常用于移動通信系統(tǒng)加密以及基于SSH協(xié)議的軟件比如:SSH Clint、secureCRT

AES算法

高級 DES替代者

算法實現(xiàn):

代碼演示:

package com.myimooc.security.aes;import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.Key; import java.security.NoSuchAlgorithmException;/*** /*** AES對稱加密演示* Created by ZC on 2017/4/11.*/ public class DemoAES {/** 待加密字符串 */private static String src="imooc security aes";public static void main(String[] args){jdkAES();}/** 通過JDK實現(xiàn)AES對稱加密 */public static void jdkAES(){try {// 生成KEYKeyGenerator keyGenerator = KeyGenerator.getInstance("AES");keyGenerator.init(128);SecretKey secretKey = keyGenerator.generateKey();byte[] keyBytes = secretKey.getEncoded();// KEY 轉(zhuǎn)換Key key = new SecretKeySpec(keyBytes,"AES");// 加密Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,key);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk aes encrypt:"+ Base64.encodeBase64String(result));// 解密cipher.init(Cipher.DECRYPT_MODE,key);result=cipher.doFinal(result);System.out.println("jdk aes decrypt:"+ new String(result));} catch (Exception e) {e.printStackTrace();}} }

流程演示:

第四章:對稱加密算法PBE

4-1 JAVA對稱加密算法PBE

PBE:綜合性對稱加密算法

PBE(Password Based Encyption)基于口令加密 對已有算法的包裝 JDK、BC 鹽 PBEWithMD5AndDES

算法實現(xiàn):

代碼演示:

package com.myimooc.security.pbe;import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; import java.security.Key; import java.security.SecureRandom;/*** /*** /*** PBE對稱加密演示* Created by ZC on 2017/4/11.*/ public class DemoPBE {/** 待加密字符串 */private static String src="imooc security pbe";private static final String TOKEN = "imooc";public static void main(String[] args){jdkPBE();}/** 使用JDK實現(xiàn)PBE算法加解密 */public static void jdkPBE(){try{// 初始化鹽SecureRandom random = new SecureRandom();byte[] salt = random.generateSeed(8);// 口令與密鑰String password = TOKEN;PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray());SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5andDES");Key key = factory.generateSecret(pbeKeySpec);// 加密PBEParameterSpec pbeParameterSpec = new PBEParameterSpec(salt,100);Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES");cipher.init(Cipher.ENCRYPT_MODE,key,pbeParameterSpec);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk pbe encrypt:"+ Base64.encodeBase64String(result));// 解密cipher.init(Cipher.DECRYPT_MODE,key,pbeParameterSpec);result = cipher.doFinal(result);System.out.println("jdk pbe decrypt:"+ Base64.encodeBase64String(result));}catch (Exception e){e.printStackTrace();}} }

流程演示:

第五章:小結(jié)

5-1 對稱加密算法小結(jié)

對稱加密算法:回顧

初等 DES--3DES AES PBE

加密和解密不在同一方怎么辦?

把密鑰發(fā)給對方

總結(jié)

以上是生活随笔為你收集整理的慕课网_《Java实现对称加密》学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91蜜臀精品国产自偷在线 | 青青国产在线观看 | mm131美女大尺度私密照尤果 | 毛片一卡二卡 | 啪视频免费 | 国产青青操 | 七七色影院 | 日韩a级一片 | 五月激情五月婷婷 | 亚洲中文字幕久久无码 | 艳妇臀荡乳欲伦交换在线播放 | 成人毛片在线免费观看 | 欧美一级性生活 | 浪荡奴双性跪着伺候 | 九九热免费视频 | 美女光屁股视频 | 巨胸爆乳美女露双奶头挤奶 | 97福利 | 欧美aaa在线观看 | 欧美日韩精品在线视频 | 麻豆人妻少妇精品无码专区 | 亚洲欧美日本在线观看 | 99精品人妻无码专区在线视频区 | 男女天堂av | 亚洲va视频 | 日本久久影视 | 亚洲av成人一区二区国产精品 | 欧美 日韩 国产 在线 | 中文写幕一区二区三区免费观成熟 | 色七七在线| 韩国一区二区在线观看 | 国产精品69av| 午夜视频网站在线观看 | 国产情侣av在线 | 有码一区 | 亚洲欧美日韩在线一区二区 | 亚洲国产97 | 国产成人精品自拍 | 国产电影免费观看高清完整版视频 | 欧美性视屏| 精品视频站长推荐 | 精品国模一区二区三区欧美 | 国产123区在线观看 91国产一区二区 | 日韩一级免费看 | 一级黄色大片视频 | 午夜网页| 黄a免费网络 | 一级做a爱片久久毛片 | 国产精品自偷自拍 | 人妻少妇一区二区三区 | 99在线精品免费视频 | 做a爰小视频 | 91免费版黄 | 狠狠综合 | 91麻豆国产福利精品 | 一区二区三区入口 | 无码人妻aⅴ一区二区三区69岛 | 亚洲av综合一区二区 | 久久精品香蕉视频 | 色黄啪啪网| 亚洲va国产va天堂va久久 | 啪啪小视频 | 老司机福利av| 久热网 | 看全黄大色黄大片 | www.96av| 男人的亚洲天堂 | 色多多视频网站 | 亚洲日本香蕉 | 精品国产一区二区三区噜噜噜 | 午夜精品久久久久久久无码 | 色哟哟一区二区三区 | 欧美亚洲色图视频 | 美日韩免费视频 | 男女无遮挡猛进猛出 | 欧美一区二区三 | 国产热| 国产精品色视频 | 国产精品一二三四区 | 欧美在线视频一区二区三区 | 91久久精品视频 | 超碰777 | 日韩av影片在线观看 | 欧美另类高清videos的特点 | 成人午夜网 | 最近中文字幕mv免费高清在线 | 日韩在线观看视频一区二区三区 | 狠狠艹视频 | 国产三级av片 | 被扒开腿一边憋尿一边惩罚 | 国产又粗又黄又猛 | 日韩大片免费 | 丝袜脚交国产在线观看 | 在线免费观看日本 | 国产一区二区三区视频免费在线观看 | 性欧美ⅴideo另类hd | 黄色在线免费视频 | 粉嫩aⅴ一区二区三区四区五区 | 色男天堂|