• Jueves 2 de Mayo de 2024, 22:35

Autor Tema:  Gran Problema  (Leído 856 veces)

ropel

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Gran Problema
« en: Martes 29 de Abril de 2008, 00:27 »
0
Hola chicos/as,

tengo una gran problema con el algoritmo de encriptación AES. Llevo varios días liado con el tema pero no consigo solucionarlo, por lo que he decidido acudir a vuestra ayuda, a ver si me podéis echar una mano en el tema.

La cuestión es la siguiente:

Yo he encontrado varios ejemplos de encriptación de datos mediante AES, los cuales, al probarlos en un único programa me funcionan adecuadamente, encriptando y desencriptando todas las cadenas que se le pasan como parámetros.

Cuando traspaso estos ejemplos a mi código de mi aplicación, donde tengo un cliente y un servidor realizados ambos en java, al encriptar los datos en el cliente, y pasarle los datos encriptados (mediante sockets) al servidor, la encriptación en el cliente la realiza bien, y en ocasiones, también me desencripta bien en el servidor. El problema me pasa a veces, y me salta la siguiente excepción:

javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when
 decrypting with padded cipher
        at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
        at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
        at javax.crypto.Cipher.doFinal(DashoA13*..)
        at AES.desencriptarDatos(AES.java:131)
        at AplicacionServidor.main(AplicacionServidor.java:84)

Otras veces me pone que el tamaño de bloque es incorrecto con lo que no se ha realizado el padding adecuadamente. Llevo bastantes días con el tema y no consigo solucionar nada al respecto. Me pasé de 3DES por este problema a AES y ahora sigo con el mismo error en este algoritmo. ¿Por qué puede ser mir problema?

Espero que alguien me pueda echar una mano, o guiarme en cómo puedo solucionar mi problema. Muchas gracias de antemano, un saludo.