Codificador e decodificador Base64
O Base64 escreve qualquer dado com 64 caracteres seguros: "Man" vira "TWFu". Cada 3 bytes viram 4 caracteres, então o resultado fica cerca de um terço mais longo.
- Verificado em milhares de casos
- Fontes: RFC 4648
- Atualizado em 6 de novembro de 2026
Seu texto fica no seu aparelho: não é enviado nem colocado no endereço da página.
Resultado
14 bytes ↔ 20 caracteres Base64
Desafio rápido
Sequência 0Recorde 0
Teste-se: cada resposta é calculada pela ferramenta, e as opções erradas são as armadilhas mais comuns.
Como funciona
Fórmula: Caracteres = 4 × ⌈bytes ÷ 3⌉
Primeiro o texto é transformado em bytes com UTF-8: um byte para uma letra sem acento, de dois a quatro para letras acentuadas e emojis. Os bytes são lidos de 3 em 3, ou seja, 24 bits cortados em 4 grupos de 6 bits; cada grupo, de 0 a 63, escolhe um caractere entre A–Z, a–z, 0–9, + e / (RFC 4648). Quando o último grupo tem só 1 ou 2 bytes, o sinal "=" completa o resultado até um múltiplo de 4. A variante para URL usa - e _ no lugar de + e /.
Exemplos práticos
"Man"
3 bytes → 4 caracteres: TWFu.
"Ma"
2 bytes: um = completa o grupo, TWE=.
"é"
2 bytes em UTF-8: w6k=.
Erros comuns
Usar Base64 para proteger uma senha.
Qualquer pessoa decodifica sem chave: não é criptografia.
Achar que o tamanho não muda.
30 bytes dão 40 caracteres: um terço a mais.
Colocar Base64 padrão numa URL: "??>" dá Pz8+, e ali o + vira um espaço.
Use a variante para URL: Pz8-.
Vetores de teste da RFC 4648
| Texto | Base64 |
|---|---|
| "" | "" |
| "f" | "Zg==" |
| "fo" | "Zm8=" |
| "foo" | "Zm9v" |
| "foob" | "Zm9vYg==" |
| "fooba" | "Zm9vYmE=" |
| "foobar" | "Zm9vYmFy" |
Tamanho depois de codificado
| Bytes | Caracteres |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1.000 | 1.336 |
| 1.000.000 | 1.333.336 |
Perguntas frequentes
Base64 é criptografia?
Não. Qualquer pessoa pode decodificá-lo, sem chave: ele só serve para os dados viajarem como texto (e-mails, JSON, URLs). Nunca o use para esconder uma senha.
Por que meu Base64 termina com = ou ==?
O tamanho não era múltiplo de 3 bytes: um = indica que o último grupo tinha 2 bytes, e == que tinha só 1.
Por que o texto codificado fica mais longo?
Cada 3 bytes viram 4 caracteres, um terço a mais, sem contar os = do fim. Letras acentuadas e emojis ocupam de 2 a 4 bytes em UTF-8, então crescem ainda mais.