BadPaddingException solo con letras como "o", "b", "c"

Estoy haciendo un programa que funciona con mensajes de criptografía por Socket. Pero, cuando en mis mensajes tiene una "o", o "b", o "c" y otras letras, recibo esa excepción en el momento descifrado.

Exception in thread "main" javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
    at com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:975)
    at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1056)
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:853)
    at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
    at javax.crypto.Cipher.doFinal(Cipher.java:2164)
    at teste1.Decrypt.decrypt(Decrypt.java:15)
    at teste1.Server.main(Server.java:24)

Sí, mi mensaje llega completo con todos los personajes, así que no creo que algún personaje se haya perdido en la transmisión. Así que realmente no sé cuál es el problema, porque he tratado de cambiar muchas cosas, pero seguí recibiendo esta excepción.

Descifrar clase:

package teste1;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.spec.IvParameterSpec;

public class Decrypt{

    String IV = "AAAAAAAAAAAAAAAA";

    public String decrypt(String str, String keys) throws Exception{
        Cipher decrypt = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
        SecretKeySpec key = new SecretKeySpec(keys.getBytes("UTF-8"), "AES");
        decrypt.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(IV.getBytes("UTF-8")));
        return new String(decrypt.doFinal(str.getBytes()),"UTF-8");
    }

}

Si quiere la clase de cifrado también:

package teste1;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class Encrypt {

    String IV = "AAAAAAAAAAAAAAAA";

    public byte[] encrypt(String menE, String keys) throws Exception {
        Cipher encrypt = Cipher.getInstance("AES/EBC/PKCS5Padding", "SunJCE");
        SecretKeySpec key = new SecretKeySpec(keys.getBytes("UTF-8"), "AES");
        encrypt.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(IV.getBytes("UTF-8")));
        return encrypt.doFinal(menE.getBytes());
    }
}
Respuesta 1

Tenemos muchas clases de entidades de hibernación con relaciones anidadas. Estoy tratando de encontrar la mejor manera de convertir una entidad dada a un formato json equivalente. Sé sobre JsonIgnore, Jackson mixins y ...

Tengo la fecha en el formato de cadena como este "Sábado 8 de septiembre 10:13:09 GMT + 0530 2012", ¿alguien puede ayudarme a convertir esta fecha de cadena en un objeto de clase Fecha.

La última versión de spring-boot-starter-jdbc contiene la versión spring-data-jdbc 1.0.5. Estoy tratando de actualizar la versión de spring-data-jdbc. Pero la consola me muestra un problema. Causado por: org ....

Necesito hacer lo siguiente: Obtener una imagen con la cámara de Android ... Quite el fondo de la imagen y colóquelo en otro fondo guárdelo. Estoy haciendo esos 3 pasos bien ... El problema es ...