public class BrAESEncrypt {
private static final String encode = "utf-8";
public static String aesEncrypt(String content, String pwdKey) {
if (StringUtils.isBlank(content) || StringUtils.isBlank(pwdKey)) {
throw new IllegalArgumentException("参数不合法");
}
try {
SecretKeySpec key = sha1PRNG(pwdKey);
Cipher cipher = Cipher.getInstance("AES");
byte[] byteContent = content.getBytes(encode);
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] result = cipher.doFinal(byteContent);
return encodeBase64URLSafeString(result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static SecretKeySpec sha1PRNG(String pwdKey) throws Exception{
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(pwdKey.getBytes());
kgen.init(128, secureRandom);
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
return key;
}
public static String encodeBase64URLSafeString(byte[] result){
return Base64.encodeBase64URLSafeString(result);
}
}