Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!