AES加密及解密(请注意方法说明和方法使用)
public class AesUtil {
static {
Security.addProvider(new BouncyCastleProvider());
}
private static final String ALGORITHM = "AES/ECB/PKCS7Padding";
/**
* AES加密
*
* @param content 需加密的字符串
* @param key 密钥
* @return
*/
public static byte[] encrypt(String content, String key) {
try {
Cipher cipher = Cipher.getInstance(ALGORITHM);
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(Base64Utils.decodeFromString(key), "AES"));
byte[] result = cipher.doFinal(byteContent);
return result;
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
/**
* AES解密
*
* @param content 加密后的字节数组
* @param key
* @return
*/
public static byte[] decrypt(byte[] content, String key) {
try {
SecretKeySpec secretKey = new SecretKeySpec(Base64Utils.decodeFromString(key), "AES");
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] result = cipher.doFinal(content);
return 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();
}
return null;
}
public static void main(String[] args) {
// AES加密
String crm20190608 = Base64Utils.encodeToString(AesUtil.encrypt("Crm20190608", "lRJKZnfee/7jJbuqGY0U8w=="));
// AES解密
String decryptres = new String(decrypt AesUtil.decrypt(Base64Utils.decodeFromString(crm20190608), "lRJKZnfee/7jJbuqGY0U8w=="));
}
}