O que é Base64
O Base64 é uma forma de escrever qualquer dado usando só 64 caracteres seguros: as letras de A a Z e de a a z, os dígitos de 0 a 9 e os símbolos + e /. Ele foi criado para sistemas que só conseguem transportar texto simples, como o e-mail e alguns formulários web. Com o Base64, uma imagem, um PDF ou um texto em qualquer idioma consegue passar por esses sistemas sem ser danificado.
Você encontra Base64 em muitos lugares: anexos de e-mail, imagens embutidas no CSS como data URLs, JSON Web Tokens (JWT), chaves de API, cabeçalhos de autenticação HTTP básica e arquivos de configuração.
Como usar esta ferramenta de Base64
Codificar texto. Digite ou cole o texto na caixa Texto. O Base64 aparece na caixa da direita enquanto você digita. Clique em Copiar para pegá-lo.
Decodificar Base64. Cole o Base64 na caixa Base64, à direita. O texto original aparece à esquerda. Espaços, quebras de linha, preenchimento faltando e um prefixo data:...;base64, são todos aceitos.
Opções.
- Seguro para URL (- e _) troca
+por-e/por_e remove o preenchimento=. Use em links, cookies e nomes de arquivos. - Quebrar linhas em 76 divide o resultado em linhas de 76 caracteres, o formato usado em e-mails (MIME).
Limpar esvazia as duas caixas.
Arquivo para Base64. Escolha um arquivo de até 25 MB. Escolha Só Base64 para a string pura ou Data URL para um valor pronto para usar, como data:image/png;base64,.... Depois clique em Copiar.
Base64 para arquivo. Cole o Base64 ou uma data URL. A ferramenta reconhece tipos comuns como PNG, JPEG, GIF, WebP, PDF e ZIP, sugere um nome de arquivo e mostra uma prévia das imagens. Clique em Baixar arquivo para salvá-lo.
Como o Base64 funciona
O Base64 lê a entrada de três em três bytes (24 bits). Ele divide esses 24 bits em quatro grupos de 6 bits. Cada grupo de 6 bits é um número de 0 a 63, e esse número escolhe um caractere do alfabeto Base64. Entram três bytes, saem quatro caracteres. É por isso que o resultado em Base64 fica cerca de um terço maior que a entrada.
O texto é primeiro transformado em bytes com UTF-8. É por isso que letras acentuadas e emojis funcionam aqui: café vira 5 bytes, e esses bytes são codificados. Em português isso faz diferença o tempo todo, já que ã, ç, é e ô ocupam dois bytes cada. Algumas ferramentas mais antigas usam diretamente a função btoa do navegador, que falha com qualquer caractere fora do Latin-1.
Exemplos
| Entrada | Base64 | Seguro para URL |
|---|---|---|
M |
TQ== |
TQ |
Ma |
TWE= |
TWE |
Man |
TWFu |
TWFu |
Hello, World! |
SGVsbG8sIFdvcmxkIQ== |
SGVsbG8sIFdvcmxkIQ |
café |
Y2Fmw6k= |
Y2Fmw6k |
Zoë |
Wm/Dqw== |
Wm_Dqw |
<?> |
PD8+ |
PD8- |
Olá, mundo! |
T2zDoSwgbXVuZG8h |
T2zDoSwgbXVuZG8h |
As linhas de Zoë e <?> mostram por que a forma segura para URL existe. Um / ou um + dentro de um link pode quebrá-lo, enquanto _ e - são seguros.
Dicas e limites
- Base64 não é segurança. Ele não esconde nada. Trate o texto em Base64 do mesmo jeito que os dados originais.
- Leia a mensagem de erro. Se você colar algo com um caractere como
*, a ferramenta indica qual caractere não é Base64 válido. - Dados binários pedem um arquivo. Se os bytes decodificados não forem um texto UTF-8 válido, a ferramenta avisa. Cole o mesmo Base64 em Base64 para arquivo e baixe.
- O tamanho aumenta. Uma imagem de 3 MB vira mais ou menos 4 MB de Base64. As data URLs embutidas são práticas para ícones pequenos, mas deixam fotos grandes lentas.
- O preenchimento é opcional na decodificação. A ferramenta acrescenta os sinais
=que faltarem. - Acentos estranhos depois de decodificar? Se aparecer algo como “Olá” no lugar de “Olá”, o Base64 foi gerado a partir de texto em outra codificação, como ISO-8859-1 ou Windows-1252. A ferramenta de codificação UTF-8 explica esse problema.
Outras formas de codificar Base64
Linha de comando (macOS e Linux). echo -n 'Hello, World!' | base64 mostra SGVsbG8sIFdvcmxkIQ==. Use base64 -d (ou base64 -D no macOS antigo) para decodificar. Sem o -n, você também codifica a quebra de linha do final.
Windows. certutil -encode input.txt output.txt codifica um arquivo. No PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World!')) codifica um texto.
JavaScript (Node). Buffer.from('Hello, World!').toString('base64') devolve SGVsbG8sIFdvcmxkIQ==, e Buffer.from('SGVsbG8=', 'base64').toString() devolve Hello.
Python. base64.b64encode('Hello, World!'.encode()).decode() dá o mesmo resultado. Repare que base64.urlsafe_b64encode mantém o preenchimento =, então Zoë vira Wm_Dqw==.
Ferramentas relacionadas
Para deixar um texto seguro para um endereço da web, use a ferramenta de codificar e decodificar URL. Para ver os bytes por trás do seu texto, experimente a ferramenta de hexadecimal para texto ou a de codificação UTF-8.