java AES加密实例:
}
public void getKey(){
for (int i = 0; i < 2; i++) {
try {
String str = "chris1234567";/*定义一个字符串*/
byte[] code = str.getBytes();/*把字符串转为byte数组*/
KeyGenerator keyGen = KeyGenerator.getInstance("AES");/*密钥生成器*/
keyGen.init(128);/*默认128,获得无政策权限后可为192或256*/
SecretKey secretKey = keyGen.generateKey();/*生成密钥*/
byte[] key = secretKey.getEncoded();/*密钥字节数组*/
SecretKey sKey = new SecretKeySpec(key, "AES");/*恢复密钥*/
Cipher cipher = Cipher.getInstance("AES");/*Cipher完成加密或解密工作类*/
cipher.init(Cipher.ENCRYPT_MODE, sKey);/*对Cipher初始化,加密模式*/
byte[] Key = cipher.doFinal(code);/*加密code*/
String key1 = Base64.getEncoder().encodeToString(Key);/*用base64来转byte加密数据数组,String直接转会出现乱码*/
System.out.println("加密后:"+key1);/*输出加密后数据*/
cipher.init(Cipher.DECRYPT_MODE, sKey);/*Cipher完成加密或解密工作类*/
byte[] key2 = Base64.getDecoder().decode(key1);/*再用base64把刚才的key1转为byte数组*/
byte[] key3 = cipher.doFinal(key2);/*解密key2*/
String key4 = new String(key3);/*解密密文可直接用String转*/
System.out.println("解密后:"+key4);/*输出解密密文*/
}catch (Exception e) {
e.printStackTrace();
}
}
}
for (int i = 0; i < 2; i++) {
try {
String str = "chris1234567";/*定义一个字符串*/
byte[] code = str.getBytes();/*把字符串转为byte数组*/
KeyGenerator keyGen = KeyGenerator.getInstance("AES");/*密钥生成器*/
keyGen.init(128);/*默认128,获得无政策权限后可为192或256*/
SecretKey secretKey = keyGen.generateKey();/*生成密钥*/
byte[] key = secretKey.getEncoded();/*密钥字节数组*/
SecretKey sKey = new SecretKeySpec(key, "AES");/*恢复密钥*/
Cipher cipher = Cipher.getInstance("AES");/*Cipher完成加密或解密工作类*/
cipher.init(Cipher.ENCRYPT_MODE, sKey);/*对Cipher初始化,加密模式*/
byte[] Key = cipher.doFinal(code);/*加密code*/
String key1 = Base64.getEncoder().encodeToString(Key);/*用base64来转byte加密数据数组,String直接转会出现乱码*/
System.out.println("加密后:"+key1);/*输出加密后数据*/
cipher.init(Cipher.DECRYPT_MODE, sKey);/*Cipher完成加密或解密工作类*/
byte[] key2 = Base64.getDecoder().decode(key1);/*再用base64把刚才的key1转为byte数组*/
byte[] key3 = cipher.doFinal(key2);/*解密key2*/
String key4 = new String(key3);/*解密密文可直接用String转*/
System.out.println("解密后:"+key4);/*输出解密密文*/
}catch (Exception e) {
e.printStackTrace();
}
}