| New file |
| | |
| | | package com.stylefeng.guns.modular.system.util; |
| | | |
| | | import org.apache.commons.codec.binary.Base64; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import javax.crypto.BadPaddingException; |
| | | import javax.crypto.Cipher; |
| | | import javax.crypto.IllegalBlockSizeException; |
| | | import javax.crypto.NoSuchPaddingException; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.security.InvalidKeyException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | |
| | | public class AESUtils { |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(AESUtils.class); |
| | | private static String ALG = "AES"; |
| | | private static String CHARSET = "UTF-8"; |
| | | private static String KEY1 = "lur8apa4zu484pvj"; |
| | | |
| | | public AESUtils() { |
| | | } |
| | | |
| | | private static byte[] encrypt(byte[] content, String password, String iv) { |
| | | try { |
| | | SecretKeySpec key = new SecretKeySpec(password.getBytes(CHARSET), ALG); |
| | | Cipher cipher = Cipher.getInstance(ALG); |
| | | cipher.init(1, key); |
| | | return cipher.doFinal(content); |
| | | } catch (NoSuchAlgorithmException var5) { |
| | | var5.printStackTrace(); |
| | | } catch (NoSuchPaddingException var6) { |
| | | var6.printStackTrace(); |
| | | } catch (InvalidKeyException var7) { |
| | | var7.printStackTrace(); |
| | | } catch (UnsupportedEncodingException var8) { |
| | | var8.printStackTrace(); |
| | | } catch (IllegalBlockSizeException var9) { |
| | | var9.printStackTrace(); |
| | | } catch (BadPaddingException var10) { |
| | | var10.printStackTrace(); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | private static byte[] decrypt(byte[] content, String password, String iv) { |
| | | try { |
| | | SecretKeySpec key = new SecretKeySpec(password.getBytes(CHARSET), ALG); |
| | | Cipher cipher = Cipher.getInstance(ALG); |
| | | cipher.init(2, key); |
| | | return cipher.doFinal(content); |
| | | } catch (NoSuchAlgorithmException var5) { |
| | | var5.printStackTrace(); |
| | | } catch (NoSuchPaddingException var6) { |
| | | var6.printStackTrace(); |
| | | } catch (InvalidKeyException var7) { |
| | | var7.printStackTrace(); |
| | | } catch (IllegalBlockSizeException var8) { |
| | | var8.printStackTrace(); |
| | | } catch (BadPaddingException var9) { |
| | | var9.printStackTrace(); |
| | | } catch (UnsupportedEncodingException var10) { |
| | | var10.printStackTrace(); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | private static String parseByte2HexStr(byte[] buf) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | |
| | | for(int i = 0; i < buf.length; ++i) { |
| | | String hex = Integer.toHexString(buf[i] & 255); |
| | | if (hex.length() == 1) { |
| | | hex = '0' + hex; |
| | | } |
| | | |
| | | sb.append(hex.toUpperCase()); |
| | | } |
| | | |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private static byte[] parseHexStr2Byte(String hexStr) { |
| | | if (hexStr.length() < 1) { |
| | | return null; |
| | | } else { |
| | | byte[] result = new byte[hexStr.length() / 2]; |
| | | |
| | | for(int i = 0; i < hexStr.length() / 2; ++i) { |
| | | int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); |
| | | int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); |
| | | result[i] = (byte)(high * 16 + low); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | public static String decryptHex(String content) { |
| | | return decryptHex(content, KEY1); |
| | | } |
| | | |
| | | public static String decryptHex(String content, String password) { |
| | | try { |
| | | return new String(decrypt(parseHexStr2Byte(content), password, ""), CHARSET); |
| | | } catch (Exception var3) { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | public static String decryptBase64(String content) { |
| | | try { |
| | | return decryptBase64(content, KEY1); |
| | | } catch (Exception var2) { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | public static String decryptBase64(String content, String password) { |
| | | try { |
| | | return new String(decrypt(Base64.decodeBase64(content), password, ""), CHARSET); |
| | | } catch (Exception var3) { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | public static String encryptHex(String content) { |
| | | return encryptHex(content, KEY1); |
| | | } |
| | | |
| | | public static String encryptHex(String content, String password) { |
| | | try { |
| | | return parseByte2HexStr(encrypt(content.getBytes(CHARSET), password, "")); |
| | | } catch (Exception var3) { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | public static String encryptBase64(String content) { |
| | | return encryptBase64(content, KEY1); |
| | | } |
| | | |
| | | public static String encryptBase64(String content, String password) { |
| | | try { |
| | | return Base64.encodeBase64String(encrypt(content.getBytes(CHARSET), password, "")); |
| | | } catch (Exception var3) { |
| | | logger.error("", var3); |
| | | return ""; |
| | | } |
| | | } |
| | | } |