AES加密解密 AES256-ECB-PKCS7Padding 工具类
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
/**
* Created by tang on 2017/10/11.
*/
public class AesUtil {
public static final String ALGORITHM = "AES/ECB/PKCS5Padding";
/* 解密
* @param byte[] bytes 要被解密的字节数组 16进制字节数组
* @param byte[] key 加/解密要用的长度为32的字节数组(256位)密钥 16进制字节数组
* @return String 解密后的字符串 16进制字节数组
*/
public static byte[] decrypt(byte[] content, byte[] key) {
byte[] decoded = null;
try {
Cipher cipher = Cipher.getInstance(ALGORITHM);
SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); //生成加密解密需要的Key
cipher.init(Cipher.DECRYPT_MODE, keySpec);
decoded = cipher.doFinal(content);
} catch (Exception e) {
e.printStackTrace();
}
return decoded;
}
/* 加密
* @param byte[] str 要被加密的字节数组 16进制字节数组
* @param byte[] key 密钥 16进制字节数组
* @return byte[] 加密后的字节数组 16进制字节数组
*/
public static byte[] entrypt(byte[] str, byte[] key) {
byte[] result = null;
try {
Cipher cipher = Cipher.getInstance(ALGORITHM, "BC");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); //生成加密解密需要的Key
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
result = cipher.doFinal(str);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}