From 5274cf403f7c18a93fb622c8351650cf8edecdf3 Mon Sep 17 00:00:00 2001 From: sharifi Date: Sun, 29 Nov 2020 11:46:11 +0330 Subject: [PATCH] remove try/catch block and add throw clause --- .../main/java/com/baeldung/aes/AESUtil.java | 218 +++++++----------- 1 file changed, 85 insertions(+), 133 deletions(-) diff --git a/core-java-modules/core-java-security-2/src/main/java/com/baeldung/aes/AESUtil.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/aes/AESUtil.java index 361f09f1cb..2952eef625 100644 --- a/core-java-modules/core-java-security-2/src/main/java/com/baeldung/aes/AESUtil.java +++ b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/aes/AESUtil.java @@ -1,8 +1,5 @@ package com.baeldung.aes; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; @@ -28,36 +25,25 @@ import java.security.spec.KeySpec; import java.util.Base64; public class AESUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(AESUtil.class); - public static String encrypt(String algorithm, String input, SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.ENCRYPT_MODE, key, iv); - byte[] cipherText = cipher.doFinal(input.getBytes()); - return Base64.getEncoder() - .encodeToString(cipherText); - } catch (NoSuchAlgorithmException | NoSuchPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - IllegalBlockSizeException | BadPaddingException exp) { - LOGGER.error(exp.getMessage()); - } - return null; + public static String encrypt(String algorithm, String input, SecretKey key, IvParameterSpec iv) + throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, + InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.ENCRYPT_MODE, key, iv); + byte[] cipherText = cipher.doFinal(input.getBytes()); + return Base64.getEncoder() + .encodeToString(cipherText); } - public static String decrypt(String algorithm, String cipherText, SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.DECRYPT_MODE, key, iv); - byte[] plainText = cipher.doFinal(Base64.getDecoder() - .decode(cipherText)); - return new String(plainText); - } catch (NoSuchAlgorithmException | NoSuchPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - IllegalBlockSizeException | BadPaddingException exp) { - LOGGER.error(exp.getMessage()); - } - return null; + public static String decrypt(String algorithm, String cipherText, SecretKey key, IvParameterSpec iv) + throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, + InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.DECRYPT_MODE, key, iv); + byte[] plainText = cipher.doFinal(Base64.getDecoder() + .decode(cipherText)); + return new String(plainText); } public static SecretKey generateKey(int n) throws NoSuchAlgorithmException { @@ -83,122 +69,88 @@ public class AESUtil { } public static void encryptFile(String algorithm, SecretKey key, IvParameterSpec iv, - File inputFile, File outputFile) throws IOException { - FileInputStream inputStream = null; - FileOutputStream outputStream = null; - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.ENCRYPT_MODE, key, iv); - inputStream = new FileInputStream(inputFile); - outputStream = new FileOutputStream(outputFile); - byte[] buffer = new byte[64]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - byte[] output = cipher.update(buffer, 0, bytesRead); - if (output != null) { - outputStream.write(output); - } - } - byte[] outputBytes = cipher.doFinal(); - if (outputBytes != null) { - outputStream.write(outputBytes); - } - } catch (InvalidAlgorithmParameterException | NoSuchAlgorithmException | - NoSuchPaddingException | BadPaddingException | - IllegalBlockSizeException | InvalidKeyException exp) { - LOGGER.error(exp.getMessage()); - } finally { - inputStream.close(); - outputStream.close(); - } - } - - public static void decryptFile(String algorithm, SecretKey key, IvParameterSpec iv, - File encryptedFile, File decryptedFile) throws IOException { - FileInputStream inputStream = null; - FileOutputStream outputStream = null; - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.DECRYPT_MODE, key, iv); - inputStream = new FileInputStream(encryptedFile); - outputStream = new FileOutputStream(decryptedFile); - byte[] buffer = new byte[64]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - byte[] output = cipher.update(buffer, 0, bytesRead); - if (output != null) { - outputStream.write(output); - } - } - byte[] output = cipher.doFinal(); + File inputFile, File outputFile) throws IOException, NoSuchPaddingException, + NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, + BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.ENCRYPT_MODE, key, iv); + FileInputStream inputStream = new FileInputStream(inputFile); + FileOutputStream outputStream = new FileOutputStream(outputFile); + byte[] buffer = new byte[64]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + byte[] output = cipher.update(buffer, 0, bytesRead); if (output != null) { outputStream.write(output); } - } catch (InvalidAlgorithmParameterException | NoSuchAlgorithmException | - NoSuchPaddingException | BadPaddingException | - IllegalBlockSizeException | InvalidKeyException exp) { - LOGGER.error(exp.getMessage()); - } finally { - inputStream.close(); - outputStream.close(); } + byte[] outputBytes = cipher.doFinal(); + if (outputBytes != null) { + outputStream.write(outputBytes); + } + inputStream.close(); + outputStream.close(); } - public static SealedObject encryptObject(String algorithm, Serializable object, SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.ENCRYPT_MODE, key, iv); - SealedObject sealedObject = new SealedObject(object, cipher); - return sealedObject; - } catch (NoSuchAlgorithmException | NoSuchPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - IOException | IllegalBlockSizeException exp) { - LOGGER.error(exp.getMessage()); + public static void decryptFile(String algorithm, SecretKey key, IvParameterSpec iv, + File encryptedFile, File decryptedFile) throws IOException, NoSuchPaddingException, + NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, + BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.DECRYPT_MODE, key, iv); + FileInputStream inputStream = new FileInputStream(encryptedFile); + FileOutputStream outputStream = new FileOutputStream(decryptedFile); + byte[] buffer = new byte[64]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + byte[] output = cipher.update(buffer, 0, bytesRead); + if (output != null) { + outputStream.write(output); + } } - return null; + byte[] output = cipher.doFinal(); + if (output != null) { + outputStream.write(output); + } + inputStream.close(); + outputStream.close(); } - public static Serializable decryptObject(String algorithm, SealedObject sealedObject, - SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance(algorithm); - cipher.init(Cipher.DECRYPT_MODE, key, iv); - Serializable unsealObject = (Serializable) sealedObject.getObject(cipher); - return unsealObject; - } catch (NoSuchAlgorithmException | NoSuchPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - IOException | ClassNotFoundException | IllegalBlockSizeException | BadPaddingException exp) { - LOGGER.error(exp.getMessage()); - } - return null; + public static SealedObject encryptObject(String algorithm, Serializable object, SecretKey key, + IvParameterSpec iv) throws NoSuchPaddingException, NoSuchAlgorithmException, + InvalidAlgorithmParameterException, InvalidKeyException, IOException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.ENCRYPT_MODE, key, iv); + SealedObject sealedObject = new SealedObject(object, cipher); + return sealedObject; } - public static String encryptPasswordBased(String plainText, SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, key, iv); - return Base64.getEncoder() - .encodeToString(cipher.doFinal(plainText.getBytes())); - } catch (NoSuchAlgorithmException | BadPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - NoSuchPaddingException | IllegalBlockSizeException exp) { - LOGGER.error(exp.getMessage()); - } - return null; + public static Serializable decryptObject(String algorithm, SealedObject sealedObject, SecretKey key, + IvParameterSpec iv) throws NoSuchPaddingException, NoSuchAlgorithmException, + InvalidAlgorithmParameterException, InvalidKeyException, ClassNotFoundException, + BadPaddingException, IllegalBlockSizeException, IOException { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(Cipher.DECRYPT_MODE, key, iv); + Serializable unsealObject = (Serializable) sealedObject.getObject(cipher); + return unsealObject; } - public static String decryptPasswordBased(String cipherText, SecretKey key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); - cipher.init(Cipher.DECRYPT_MODE, key, iv); - return new String(cipher.doFinal(Base64.getDecoder() - .decode(cipherText))); - } catch (NoSuchAlgorithmException | BadPaddingException | - InvalidKeyException | InvalidAlgorithmParameterException | - NoSuchPaddingException | IllegalBlockSizeException exp) { - LOGGER.error(exp.getMessage()); - } - return null; + public static String encryptPasswordBased(String plainText, SecretKey key, IvParameterSpec iv) + throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, + InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, key, iv); + return Base64.getEncoder() + .encodeToString(cipher.doFinal(plainText.getBytes())); + } + + public static String decryptPasswordBased(String cipherText, SecretKey key, IvParameterSpec iv) + throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, + InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); + cipher.init(Cipher.DECRYPT_MODE, key, iv); + return new String(cipher.doFinal(Base64.getDecoder() + .decode(cipherText))); } }