· 6 years ago · Feb 20, 2019, 05:56 PM
1private static final String encryptedText =
2 "HmIa4BguCeB2UU0UuW0eRSeH6VZNPnLVlRgVkBQ7/D0b0I/HCoX03QiEM3/I3gYzLCLYNjWMJz2NygRLQFEfO58odVQE2+yePbxCedVfYZsk7AbMuaqa5cu6YdgMNf+DarP193suRSCgxSKOsg==";
3 private static final String keyHex = "404142434445464748494A4B4C4D4E4F";
4 private static final String ivHex = "FA4A5B9D0AB62C15E47023EEEE07D063";
5
6 public static void main(String[] args) {
7 Security.addProvider(new BouncyCastleProvider());
8 System.out.println(decryptWithAES_GCM(encryptedText, keyHex, ivHex));
9 }
10
11 public static String decryptWithAES_GCM(String encryptedText, String keyHex, String ivHex) {
12
13 byte[] dectyptedText;
14 byte[] key = Hex.decode(keyHex);
15 byte[] iv = Hex.decode(ivHex);
16
17 try {
18 SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
19 Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", "BC");
20 GCMParameterSpec parameterSpec = new GCMParameterSpec(iv.length * 8, iv);
21 cipher.init(Cipher.DECRYPT_MODE, secretKey, parameterSpec);
22 dectyptedText = cipher.doFinal(Base64.decode(encryptedText));
23 } catch (Exception e) {
24 throw new RuntimeException(e);
25 }
26
27 return new String(dectyptedText);
28 }