I need help with this error: Given final block not properly padded. As you can see from the title, I am working with AES.
Here is the code of line where is error:
Per your comment, you are pretty close to getting the crypto working.
You need to move the IV generation code from your encryption/decryption methods to somewhere else, like so
public AlgorithmParameterSpec getIV() {
AlgorithmParameterSpec ivspec;
byte[] iv = new byte[cipher.getBlockSize()];
new SecureRandom().nextBytes(iv);
ivspec = new IvParameterSpec(iv);
}
then pass that ivspec into both the encrypt and decrypt methods (making them look like encrypt(String,AlgorithmParameterSpec)), so that you have the same iv for both encryption and decryption.
Also, don't call printBase64Binary on the decryptedByteArray, instead call new String(decryptedByteArray, "UTF-8")