Gran Problema
Publicado por Luis (2 intervenciones) el 29/04/2008 00:28:47
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.
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.
Valora esta pregunta


0