package com.imooc.security.aes;
import java.security.Key;
import java.util.Objects;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
/**
* 对称加密算法
* @author Bingo_Ge
*
*/
public class ImoocAES {
private static String src = "imooc security aes";
public static void main(String[] args) {
jdkAES();
}
public static void jdkAES() {
try {
//生成KEY
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128); //初始化长度
SecretKey secretKey = keyGenerator.generateKey();
byte[] keyBytes = secretKey.getEncoded(); //得到key byte数组
// KeyGenerator keyGenerator1 = KeyGenerator.getInstance("AES");
// keyGenerator1.init(128); //初始化长度
// SecretKey secretKey1 = keyGenerator1.generateKey();
// byte[] keyBytes1 = secretKey1.getEncoded(); //得到key byte数组
//
// System.out.println(Objects.equals(keyBytes, keyBytes1));
//key转换
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 encrpt:" + Base64.encodeBase64String(result));
cipher.init(cipher.DECRYPT_MODE, key); //此处为解密模式,还是需要用到原来的key
result = cipher.doFinal(result); //得到解密后结果数组
System.out.println("jdk aes decrypt:" + new String(result));
} catch (Exception e) {
e.printStackTrace();
}
}
}
对称加密算法AES
最新推荐文章于 2023-07-15 23:07:21 发布