Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

250
Vistas
El xml cifrado con JavaScript genera un error en el descifrado de la aplicación Java: el bloque final dado no se ha rellenado correctamente. Estos problemas pueden surgir si se utiliza una llave defectuosa.

Tenemos una aplicación de envío (node.js) que envía a una aplicación Java algunas cadenas XML encriptadas simétricas con una clave AES 128.

Cuando la aplicación Java intente descifrar el contenido con la clave proporcionada, se generará el siguiente error:

javax.crypto.BadPaddingException: el bloque final dado no se rellenó correctamente. Tales problemas pueden surgir si se usa una clave incorrecta durante el descifrado. en com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:975) en com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1056) en com.sun.crypto.provider.CipherCore.doFinal (CipherCore.java:853) en com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446) en javax.crypto.Cipher.doFinal(Cipher.java:2168)

 public generateKey(): Buffer { return crypto.generateKeySync('aes', { length: 128 }).export(); } // Encrypt content with key public encryptSymmetric(content: string, encryptionKey: Buffer): Buffer { const iv = Buffer.from(crypto.randomBytes(this.IV_LENGTH)).toString('hex').slice(0, this.IV_LENGTH); const cipher = crypto.createCipheriv('aes-128-cbc', encryptionKey, iv); let encrypted = cipher.update(content); encrypted = Buffer.concat([encrypted, cipher.final()]); return encrypted; //return iv + ':' + encrypted.toString('hex'); }

Receptor Java: descifrar con clave

 private static byte[] decryptContent(SecretKeySpec key, byte[] content) throws GeneralSecurityException { Cipher cipher = Cipher.getInstance('AES'); cipher.init(Cipher.DECRYPT_MODE, key); return cipher.doFinal(content); // EXCEPTION }

No tengo idea de cómo resolver este problema específico, a nivel de encriptación hay muchas opciones diferentes como AES CBC o GCM. Espero que puedas ayudarme. ¡Solo podemos cambiar el código del remitente!

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda