PBE算法要比之前那两种复杂一些
AES的加密方式
dsf
Ps1:盐:指的是“干扰”黑客的字符,比如一些随机的字符串、数字等。
Ps2:new PBEParameterSpec(盐,迭代次数);。
public static void jdkPBE() {
try {Java实现对称加密——对称加密算法--PBE
Ps:PBE算法结合了消息摘要算法和对称加密算法的优点。PBE是基于口令的加密
对称加密算法之PBE的特点概述,本质上是对DES/3DES/AES对称加密算法的包装,不是新的算法,不过也是最为牛逼的一种方式。
盐:指加密的随机字符串或者口令等,也可以人为是一些扰码,防止密码的暴力破解
对称加密算法——PBE
AES是DES的高级替代
1、AES是目前使用最多的对称加密算法
2、通常用于移动通信系统加密一级基于SSH协议的软件
3、SSH Client、secureCRT
4、DES算法的替代者
AES是DES的高级替代
DES有漏洞,所以,产生了3重DES<br>
3重DES的效率比较低,所以产生了AES<br>
AES的特点是:
1:使用的更为广泛
2:目前还没有被破解
3:通常用与移动通信系统加密和SSH协议的软件加密
1、3重DES
DES加密:BC实现DES算法
// 生成key
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
keyGenerator.getProvider();
keyGenerator.init(56);
SecretKey secretKey = keyGenerator.generateKey();
byte[] bytesKey = secretKey.getEncoded();
// key转换
DESKeySpec desKeySpec = new DESKeySpec(bytesKey);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
Key convertSecretKey = factory.generateSecret(desKeySpec);
// 加密
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
byte[] result = cipher.doFinal(string.getBytes());
// System.out.println("jdk des encrypt:" + Arrays.toString(result));
System.out.println("bc des encrypt:" + Hex.encodeHexString(result));
DES加密:JDK实现DES算法
// 生成key
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
SecretKey secretKey = keyGenerator.generateKey();
byte[] bs = secretKey.getEncoded();
// key转换
DESKeySpec desKeySpec = new DESKeySpec(bs);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
Key convertSecretKey = factory.generateSecret(desKeySpec);
// 加密
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
byte[] result = cipher.doFinal(string.getBytes());
// System.out.println("jdk des encrypt:" + Arrays.toString(result));
System.out.println("jdk des encrypt:" + Hex.encodeHexString(result));
常用对称加密算法:
DES
AES
PBE
IDEA
对称加密的特点:
加密秘钥=解密秘钥
PBE加密算法
常用对称加密算法:
DES
AES
PBE
IDEA
对称加密的特点:
加密秘钥=解密秘钥
PBE算法流程
AES算法流程
DES算法流程