· 5 years ago · May 22, 2020, 05:58 PM
1package com.pg.bsk.encryption;
2
3import javax.crypto.Cipher;
4import javax.crypto.spec.IvParameterSpec;
5import javax.crypto.spec.SecretKeySpec;
6import java.util.Base64;
7
8/**
9 * @author ajarmolkowicz
10 * @date 3/17/20
11 * @project message-encryptor
12 */
13public abstract class AES {
14 public static byte[] encrypt(byte[] input, byte[] hashedKey, String blockCipherMode, IvParameterSpec iv) {
15 byte[] crypted;
16 try {
17 SecretKeySpec secretKey = new SecretKeySpec(hashedKey, "AES");
18 Cipher cipher = Cipher.getInstance(blockCipherMode);
19 if (blockCipherMode.equals(BlockCipherModes.ECB)) {
20 cipher.init(Cipher.ENCRYPT_MODE, secretKey);
21 } else {
22 cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
23 }
24 crypted = cipher.doFinal(input);
25 return Base64.getEncoder().encode(crypted);
26 } catch (Exception e) {
27 System.out.println(e.toString());
28 }
29 return null;
30 }
31
32 public static byte[] decrypt(byte[] input, byte[] hashedKey, String blockCipherMode, IvParameterSpec iv) {
33 byte[] output;
34 try {
35 SecretKeySpec secretKey = new SecretKeySpec(hashedKey, "AES");
36 Cipher cipher = Cipher.getInstance(blockCipherMode);
37 if (blockCipherMode.equals(BlockCipherModes.ECB)) {
38 cipher.init(Cipher.DECRYPT_MODE, secretKey);
39 } else {
40 cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
41 }
42 output = cipher.doFinal(Base64.getDecoder().decode(input));
43 return output;
44 } catch (Exception e) {
45 System.out.println(e.toString());
46 }
47 return null;
48 }
49}