admin
2022-04-16 04f09e52ffd4681bdfd85e51acd3da0d1280c3d3
src/main/java/com/yeshi/buwan/util/AESUtil.java
@@ -1,134 +1,128 @@
package com.yeshi.buwan.util;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
/**
 * AES加密解密
 *
 *
 * @author Administrator
 *
 */
public class AESUtil {
   private final static String KEY = "1234567890123456";
    private final static String KEY = "1234567890123456";
   public static String encrypt(String content) {
      try {
         // KeyGenerator提供对策密钥生成器的功能,支持各种算法
         KeyGenerator kgen = KeyGenerator.getInstance("AES");
         SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
         secureRandom.setSeed(KEY.getBytes());
         kgen.init(128, secureRandom);
         // SecretKey 负责保存对称密钥
         SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
    public static String encrypt(String content) {
        try {
            // KeyGenerator提供对策密钥生成器的功能,支持各种算法
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(KEY.getBytes());
            kgen.init(128, secureRandom);
            // SecretKey 负责保存对称密钥
            SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
         // 创建密码器
         Cipher cipher = Cipher.getInstance("AES");
         byte[] byteContent = content.getBytes("utf-8");
         // 初始化
         cipher.init(Cipher.ENCRYPT_MODE, key);
         // 加密
         byte[] result = cipher.doFinal(byteContent);
         return (new sun.misc.BASE64Encoder()).encode(result);
      } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
      } catch (NoSuchPaddingException e) {
         e.printStackTrace();
      } catch (InvalidKeyException e) {
         e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
      } catch (IllegalBlockSizeException e) {
         e.printStackTrace();
      } catch (BadPaddingException e) {
         e.printStackTrace();
      }
      return new String();
   }
            // 创建密码器
            Cipher cipher = Cipher.getInstance("AES");
            byte[] byteContent = content.getBytes("utf-8");
            // 初始化
            cipher.init(Cipher.ENCRYPT_MODE, key);
            // 加密
            byte[] result = cipher.doFinal(byteContent);
            return StringUtil.getBase64FromByte(result);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return new String();
    }
   /*
    * 注意:解密的时候要传入byte数组 解密
    *
    * @param content 待解密内容
    *
    * @param password 解密密钥
    *
    * @return
    */
   // public String decrypt(byte[] content, String password) {
   public static String decrypt(String contentStr) {
      try {
         byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
    /*
     * 注意:解密的时候要传入byte数组 解密
     *
     * @param content 待解密内容
     *
     * @param password 解密密钥
     *
     * @return
     */
    // public String decrypt(byte[] content, String password) {
    public static String decrypt(String contentStr) {
        try {
            byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
         KeyGenerator kgen = KeyGenerator.getInstance("AES");
         SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
         secureRandom.setSeed(KEY.getBytes());
         kgen.init(128, secureRandom);
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(KEY.getBytes());
            kgen.init(128, secureRandom);
         SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
         // 创建密码器
         Cipher cipher = Cipher.getInstance("AES");
         // 初始化
         cipher.init(Cipher.DECRYPT_MODE, key);
         // 加密
         byte[] result = cipher.doFinal(content);
         return new String(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();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return new String();
   }
            SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
            // 创建密码器
            Cipher cipher = Cipher.getInstance("AES");
            // 初始化
            cipher.init(Cipher.DECRYPT_MODE, key);
            // 加密
            byte[] result = cipher.doFinal(content);
            return new String(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();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new String();
    }
   public static String decrypt(byte[] contentStr, String k) {
      try {
         byte[] content = contentStr;
         KeyGenerator kgen = KeyGenerator.getInstance("AES");
         SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
         secureRandom.setSeed(k.getBytes());
         kgen.init(128, secureRandom);
    public static String decrypt(byte[] contentStr, String k) {
        try {
            byte[] content = contentStr;
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(k.getBytes());
            kgen.init(128, secureRandom);
         SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES");
         // 创建密码器
         Cipher cipher = Cipher.getInstance("AES");
         // 初始化
         cipher.init(Cipher.DECRYPT_MODE, key);
         // 加密
         byte[] result = cipher.doFinal(content);
         return new String(result, "utf-8");
      } 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();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return new String();
   }
            SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES");
            // 创建密码器
            Cipher cipher = Cipher.getInstance("AES");
            // 初始化
            cipher.init(Cipher.DECRYPT_MODE, key);
            // 加密
            byte[] result = cipher.doFinal(content);
            return new String(result, "utf-8");
        } 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();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new String();
    }
}