aes-encryption.com
Português (Brasil)

AES · GCM / CBC / CTR

Preenchimento AES: PKCS7, GCM e CTR

Entenda padding CBC e por que uma falha PKCS7 não equivale a autenticação.

O preenchimento depende do modo

AES usa blocos de 16 bytes. CBC precisa de blocos completos e usa PKCS7 aqui. GCM e CTR processam o bloco final parcial sem esse preenchimento. O perfil de senha fixa GCM. Sistemas com zeros ou sem padding não são automaticamente compatíveis com CBC PKCS7.

Exemplo byte a byte

Uma mensagem de 13 bytes recebe três bytes 03. Uma de 16 recebe outro bloco completo de dezesseis bytes 10 em hexadecimal. Isso torna a remoção definida. O texto abc ocupa três bytes UTF-8 e CBC acrescenta treze bytes 0d automaticamente: não digite padding adicional no editor.

O significado de uma falha

Chave, IV, modo, dados ou convenção incorretos podem causar erro sem identificar a causa. Bytes aleatórios podem parecer padding válido: removê-lo não autentica. GCM rejeita tag errada sem liberar texto; não mude para CBC para contornar isso. CTR não tem verificação de preenchimento.

Depure sem apagar conteúdo

Confira decodificação, IV de 16 bytes e tamanho de chave. Preserve quebras finais necessárias. Se o outro sistema usa outro padding, siga sua implementação, não remova zeros nem adivinhe quantos bytes descartar.

Ferramentas e leituras relacionadas

Referências técnicas

Atualizado em 16 de outubro de 2026

Perguntas frequentes

Por que 16 bytes exatos recebem outro bloco?

PKCS7 acrescenta um bloco inteiro quando a entrada já está alinhada. É esperado.

Padding válido prova a chave correta?

Não. É uma verificação de formato, não autenticação.