· 5 years ago · Nov 21, 2019, 08:18 AM
1public static SecretKey GenerateKeyForCBC() throws NoSuchAlgorithmException {
2 KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
3 keyGenerator.init(128);
4
5 SecretKey key = keyGenerator.generateKey();
6 byte[] IV = new byte[16];
7 SecureRandom random = new SecureRandom();
8 random.nextBytes(IV);
9
10 return key;
11
12 }
13 public static byte[] encrypt (byte[] plaintext,SecretKey key,byte[] IV ) throws Exception{
14
15 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
16 SecretKeySpec keySpec = new SecretKeySpec(key.getEncoded(), "AES");
17 IvParameterSpec ivSpec = new IvParameterSpec(IV);
18 cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
19 byte[] cipherText = cipher.doFinal(plaintext);
20
21 return cipherText;
22 }
23 public static byte[] decrypt (byte[] cipherText, SecretKey key,byte[] IV) throws Exception{
24 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
25 SecretKeySpec keySpec = new SecretKeySpec(key.getEncoded(), "AES");
26 IvParameterSpec ivSpec = new IvParameterSpec(IV);
27 cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
28 byte[] decryptedText = cipher.doFinal(cipherText);
29 return decryptedText;
30 }