#####AES:
package com.example.wuji.jiami;
import com.sun.org.apache.xml.internal.security.utils.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
/**
* 对称加密 AES
*/
public class Aes {
public static void main(String[] args) throws Exception {
String jin = "jinxudong";
//DES加密 只允许密钥是16个字节的
String key = "1234567890asdfgh";
String sf = "AES";
String str = jiami(key, sf, jin);
System.out.println("AES加密后:" + str);
str = jiemi(key, sf, str);
System.out.println("AES解密后:" + str);
}
/**
* 加密
*
* @param key 密钥
* @param jiami 加密算法
* @param content 加密内容
* @return
* @throws Exception
*/
private static String jiami(String key, String jiami, String content) throws Exception {
Cipher cipher = Cipher.getInstance(jiami);
//加密规则
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
//加密模式 加密规则
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
//执行加密方法
byte[] l = cipher.doFinal(content.getBytes());
String str = Base64.encode(l);
return str;
}
/**
* 解密
*
* @param key 密钥
* @param jiami 算法
* @param content 解密内容
* @return
* @throws Exception
*/
private static String jiemi(String key, String jiami, String content) throws Exception {
Cipher cipher = Cipher.getInstance(jiami);
//加密规则
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), jiami);
//加密模式 加密规则 解密 DECRYPT
cipher.init(Cipher.DECRYPT_MODE, secretKey);
//执行解密方法
byte[] str = Base64.decode(content.getBytes());
byte[] ss = cipher.doFinal(str);
return new String(ss);
}
}