package com.yeshi.fanli.util;
|
|
import java.io.UnsupportedEncodingException;
|
import java.security.InvalidKeyException;
|
import java.security.NoSuchAlgorithmException;
|
import java.security.SecureRandom;
|
|
import javax.crypto.BadPaddingException;
|
import javax.crypto.Cipher;
|
import javax.crypto.IllegalBlockSizeException;
|
import javax.crypto.KeyGenerator;
|
import javax.crypto.NoSuchPaddingException;
|
import javax.crypto.spec.IvParameterSpec;
|
import javax.crypto.spec.SecretKeySpec;
|
|
/**
|
* AES加解密
|
*
|
* @author Administrator
|
*
|
*/
|
public class AESUtil {
|
|
private final static String KEY = "1ww52Ha192109425";
|
|
public static String encrypt(String content) {
|
try {
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(KEY.getBytes());
|
kgen.init(128, secureRandom);
|
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
|
|
Cipher cipher = Cipher.getInstance("AES");
|
byte[] byteContent = content.getBytes("utf-8");
|
cipher.init(Cipher.ENCRYPT_MODE, key);
|
byte[] result = cipher.doFinal(byteContent);
|
return (new sun.misc.BASE64Encoder()).encode(result);
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (NoSuchPaddingException e) {
|
e.printStackTrace();
|
} catch (InvalidKeyException e) {
|
e.printStackTrace();
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (IllegalBlockSizeException e) {
|
e.printStackTrace();
|
} catch (BadPaddingException e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
|
public static String encrypt(String content,String keyStr) {
|
try {
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(keyStr.getBytes());
|
kgen.init(128, secureRandom);
|
SecretKeySpec key = new SecretKeySpec(keyStr.getBytes(), "AES");
|
|
Cipher cipher = Cipher.getInstance("AES");
|
byte[] byteContent = content.getBytes("utf-8");
|
cipher.init(Cipher.ENCRYPT_MODE, key);
|
byte[] result = cipher.doFinal(byteContent);
|
return (new sun.misc.BASE64Encoder()).encode(result);
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (NoSuchPaddingException e) {
|
e.printStackTrace();
|
} catch (InvalidKeyException e) {
|
e.printStackTrace();
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (IllegalBlockSizeException e) {
|
e.printStackTrace();
|
} catch (BadPaddingException e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
public static String decrypt(String contentStr) {
|
try {
|
byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
|
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(KEY.getBytes());
|
kgen.init(128, secureRandom);
|
|
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
|
Cipher cipher = Cipher.getInstance("AES");
|
cipher.init(Cipher.DECRYPT_MODE, key);
|
byte[] result = cipher.doFinal(content);
|
return new String(result);
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (NoSuchPaddingException e) {
|
e.printStackTrace();
|
} catch (InvalidKeyException e) {
|
e.printStackTrace();
|
} catch (IllegalBlockSizeException e) {
|
e.printStackTrace();
|
} catch (BadPaddingException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
|
|
public static String decrypt(String contentStr,String keyStr) {
|
try {
|
byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
|
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(keyStr.getBytes());
|
kgen.init(128, secureRandom);
|
|
SecretKeySpec key = new SecretKeySpec(keyStr.getBytes(), "AES");
|
Cipher cipher = Cipher.getInstance("AES");
|
cipher.init(Cipher.DECRYPT_MODE, key);
|
byte[] result = cipher.doFinal(content);
|
return new String(result);
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (NoSuchPaddingException e) {
|
e.printStackTrace();
|
} catch (InvalidKeyException e) {
|
e.printStackTrace();
|
} catch (IllegalBlockSizeException e) {
|
e.printStackTrace();
|
} catch (BadPaddingException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
|
public static String decrypt(String contentStr, String keyBase64, String ivBase64) {
|
try {
|
byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
|
IvParameterSpec iv = new IvParameterSpec((new sun.misc.BASE64Decoder()).decodeBuffer(ivBase64));
|
SecretKeySpec skeySpec = new SecretKeySpec((new sun.misc.BASE64Decoder()).decodeBuffer(keyBase64), "AES");
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7PADDING");
|
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
byte[] original = cipher.doFinal(content);
|
return new String(original);
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
}
|
return null;
|
}
|
|
public static String decrypt(byte[] contentStr, String k) {
|
try {
|
byte[] content = contentStr;
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(k.getBytes());
|
kgen.init(128, secureRandom);
|
|
SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES");
|
Cipher cipher = Cipher.getInstance("AES");
|
cipher.init(Cipher.DECRYPT_MODE, key);
|
byte[] result = cipher.doFinal(content);
|
return new String(result, "utf-8");
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (NoSuchPaddingException e) {
|
e.printStackTrace();
|
} catch (InvalidKeyException e) {
|
e.printStackTrace();
|
} catch (IllegalBlockSizeException e) {
|
e.printStackTrace();
|
} catch (BadPaddingException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
}
|