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
- Criptografar texto
- Descriptografar texto
- Criptografar um arquivo
- Gerar uma chave
- O que é AES: chaves, blocos e recuperação
- AES-GCM, CBC e CTR: autenticação e parâmetros
- AES-128, AES-192 e AES-256: bytes e codificações
Referências técnicas
Atualizado em 16 de outubro de 2026