java aes 解压_Java-AES加密解密

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解密

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值