I was able to successfully encrypt a message with a generated key. Now I am trying to achive decryption whereby a user would enter a key (hex) and there encrypted message (hex). I am having a problem when decrypting the the encrypted message (hex). I receive multiple NullPointerExceptions. Could you possible help me figure out a solution to this problem please?
//Edit: For Example the key (Hex): CFDD0F5311764F9EA56CF4126E304BC2 | Encrypted Message: C2A80A2B7A84A5A785E059F19322E5BA
private void executeDecryption() {
    encryptMessageStr = messageEncryptTA.getText();
    algorithmType = decryptAlgorithmTypeCB.getSelectionModel().getSelectedItem();
    keyDecrypt = keyTF.getText();
    if (!messageEncryptedTA.getText().isEmpty()) {
        try {
            //Using decryptText()
            String textDecipher = decryptText(encryptedMessageStr, keyDecrypt);
            messageEncryptedTA.setText(textDecipher);
        } catch (Exception ex) {
            MessageBox.display("Error!", "Could not decrypt message! Please try again later");
            //System.out.println(ex.getMessage());
        }
    } else {
        MessageBox.display("Warning!", "Please make sure message field is not empty!");
    }
}
public static String decryptText(String encryptedMessageStr, String secretKey) {
    try {
        Key k = new SecretKeySpec(Base64.getDecoder().decode(secretKey), "AES");
        Cipher cipherAES = Cipher.getInstance("AES");
        cipherAES.init(Cipher.DECRYPT_MODE, k);
        byte[] decodedValue = Base64.getDecoder().decode(encryptedMessageStr);
        byte[] cipherTextBytes = cipherAES.doFinal(decodedValue);
        String decryptedValue = new String(cipherTextBytes);
        return decryptedValue;
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return "Error";
}
Edited:
EXCEPTION: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
 
     
    