加解密工具类
/**
* AES256加解密
*/
public class AESEncrypt {
public static final String UTF_8 = "UTF-8";
private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
private static final byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
static {
try {
//预热
Cipher.getInstance(ALGORITHM);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}
}
/**
* 生成 SecretKey (有盐值salt)
*
* @param secret
* @param salt
* @return
*/
public static SecretKey generateSecretKey(String secret, String salt) {
SecretKey secretKey = null;
try {
//有盐值的模式,耗时将近2秒
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");