Base64 leva bytes como texto; não esconde segredos
Base64 é útil quando um canal de texto precisa carregar bytes. Ele muda a representação dos dados, não quem consegue entendê-los, nem garante reduzir o tamanho.
Conte bytes antes de letras
Base64 padrão com preenchimento representa cada 3 bytes com 4 caracteres e completa o grupo final com = quando necessário. Divida os bytes por 3, arredonde para cima e multiplique por 4 para obter o comprimento.
Um caractere pode ocupar mais de 1 byte UTF-8. Um texto árabe curto pode gerar mais caracteres codificados que outro latino com a mesma quantidade de letras.
Referências: RFC 4648 — Base encodings, padding and security considerations
Codificação não oferece sigilo
Quem tem o valor normalmente consegue decodificá-lo sem chave secreta. Base64 não protege senha nem esconde informação em um link compartilhado.
Trate a saída com a mesma sensibilidade da origem. Impedir a leitura exige um mecanismo de segurança adequado, não outra representação textual.
Referências: RFC 4648 — Base encodings, padding and security considerations
Saiba o que os bytes deveriam representar
Esta ferramenta codifica texto em UTF-8 e decodifica para texto UTF-8 válido. Uma imagem codificada pode ser Base64 correto e não servir para este decodificador textual.
A variante base64url usada em alguns links difere do padrão. Não adicione ou retire caracteres ao acaso para forçar aceitação; confira a variante esperada pela origem.
Referências: RFC 4648 — Base encodings, padding and security considerations
Exemplo: a quantidade de letras não define o tamanho
Hi! ocupa 3 bytes UTF-8 e vira SGkh: 4 caracteres sem preenchimento. A decodificação recupera o mesmo texto sem senha.
A palavra árabe مرحبا tem 5 letras, mas 10 bytes UTF-8. Sua codificação é 2YXYsdit2KjYpw==, com 16 caracteres. O tamanho segue os bytes; os 2 sinais = não significam que 2 letras foram apagadas.