aes-encryption.com
Español

AES · GCM / CBC / CTR

Relleno AES: PKCS7, GCM y CTR

Entiende el relleno CBC y por qué un error PKCS7 no equivale a un resultado de autenticación.

El relleno depende del modo

AES tiene bloques de 16 bytes. CBC necesita bloques completos y aquí usa PKCS7; GCM y CTR procesan bloques finales parciales sin ese relleno. El perfil con contraseña fija GCM. Otros sistemas con ceros o sin relleno no son automáticamente compatibles con CBC PKCS7.

Ejemplo byte a byte

Un mensaje de 13 bytes añade tres bytes 03. Uno de 16 bytes añade otro bloque completo de dieciséis bytes 10 en hexadecimal. Así puede retirarse el relleno sin ambigüedad. El texto abc tiene tres bytes UTF-8 y CBC añade trece bytes 0d automáticamente: no los escribas de nuevo en el editor.

Qué implica un fallo

Clave, IV, modo, cifrado o convención incorrectos pueden causar error, sin identificar una causa única. Bytes aleatorios pueden parecer relleno válido: retirarlo no autentica. GCM rechaza un tag incorrecto sin revelar texto; no cambies a CBC para evitarlo. CTR no tiene comprobación de relleno.

Depura sin borrar texto

Verifica decodificación, IV de 16 bytes y tamaño de clave. Conserva los saltos finales necesarios del mensaje. Si el otro sistema usa otro relleno, sigue su implementación; no elimines ceros ni adivines cuántos bytes descartar.

Herramientas y lecturas relacionadas

Referencias técnicas

Actualizado el 16 de octubre de 2026

Preguntas frecuentes

¿Por qué se añade un bloque a 16 bytes exactos?

PKCS7 añade un bloque de relleno completo cuando la entrada ya está alineada. Es normal.

¿Relleno correcto prueba una clave correcta?

No. Es una comprobación de formato, no autenticación.