packagecom.jy.demo.web;importjava.security.Provider;importjava.security.SecureRandom;importjava.security.Security;importjava.util.Arrays;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKey;importjavax.crypto.spec.IvParameterSpec;importjavax.crypto.spec.SecretKeySpec;importorg.apache.commons.codec.binary.Base64;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;public classAESUtils{public static final String IV = "2015030120123456";private static final Logger logger = LoggerFactory.getLogger(AESUtils.class);public static byte[] aesEncrypt(String content, String pkey)
{try{
SecretKeySpec key= new SecretKeySpec(pkey.getBytes(), "AES");
Cipher cipher= Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv= new IvParameterSpec("2015030120123456".getBytes());
cipher.init(1, key, iv);return cipher.doFinal(content.getBytes("UTF-8"));
}catch(Exception e) {
e.printStackTrace();
}return null;
}private staticSecretKey generateKey(String secretKey)throwsException
{
Provider p= Security.getProvider("SUN");
SecureRandom secureRandom= SecureRandom.getInstance("SHA1PRNG", p);
secureRandom.setSeed(secretKey.getBytes());
KeyGenerator kg= KeyGenerator.getInstance("AES");
kg.init(secureRandom);returnkg.generateKey();
}public staticString aesEncryptStr(String content, String pkey)
{byte[] aesEncrypt =aesEncrypt(content, pkey);
logger.debug("aesEncrypt String:" +Arrays.toString(aesEncrypt));
String base64EncodeStr=Base64.encodeBase64String(aesEncrypt);
logger.debug("aesEncrypt base64EncodeStr:" +base64EncodeStr);returnbase64EncodeStr;
}public staticString aesDecodeStr(String content, String pkey)throwsException
{byte[] base64DecodeStr =Base64.decodeBase64(content);
logger.debug("base64DecodeStr String:" +Arrays.toString(base64DecodeStr));byte[] aesDecode =aesDecode(base64DecodeStr, pkey);if (aesDecode == null) {return null;
}
String result= new String(aesDecode, "UTF-8");
logger.debug("aesDecode result:" +result);returnresult;
}public static byte[] aesDecode(byte[] content, String pkey)
{try{
SecretKeySpec key= new SecretKeySpec(pkey.getBytes(), "AES");
IvParameterSpec iv= new IvParameterSpec("2015030120123456".getBytes("UTF-8"));
Cipher cipher= Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(2, key, iv);returncipher.doFinal(content);
}catch(Exception e) {
e.printStackTrace();
}return null;
}public static void main(String[] args) throwsException {
System.out.println( AESUtils.aesEncryptStr("123456", "abcdnnnnnn123456"));//根据key加密
System.out.println( AESUtils.aesDecodeStr("i/urUHvLlepO+NWthBU7AA==", "abcdnnnnnn123456"));//根据加密后密码还有加密key解密
}
}
最后
以上就是踏实红酒最近收集整理的关于java aes 解压_Java-AES加密解密的全部内容,更多相关java内容请搜索靠谱客的其他文章。
发表评论 取消回复