import javax.crypto.Cipher;
import javax.crypto.spec.SecreKeySpec;
import org.apache.commons.codec.binary.Base64;
public class AesUtil{
//必须为16位 加盐密钥 可以获取uuid截取16位
private final static String secreKey = "1111111111111111"; //可定义统一 也可每次手动传参
private final static Stirng encoding = "utf-8";
//加密方法
public static String encode(String text){
byte[] encryptData = {};
try{
SecretKeySpec keySpec = new SecretKeySpec(secreKey.getBytes(),"AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,keySpec);
encryptData = cipher.doFinal(text.getBytes(encoding));
}catch(Excpetion e){
//异常信息
}
return Base64.encodeBase64String(encryptData);
}
//解密方法
public static String decode(String text){
try{
SecretKeySpec keySpec = new SecretKeySpec(secreKey.getBytes(),"AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE,keySpec);
byte[] bOut = cipher.doFinal(Base64.decodeBase64(text));
text = new String(bOut);
}catch(Excpetion e){
//异常信息
}
return text;
}
//main 方法仅测试使用
public static void main(String[] args){
//加密数据
Stirng text = "123456";
System.out.println("数据信息:"+text);
System.out.println("16位加密密钥 :"+secreKey);
System.out.println("加密后数据:"+encode(text));
System.out.println("解密后数据:"+decode(encode(text)));
}
}
亲测可用 纯手工敲码 有问题联系 谢谢!