Sobre: Codificador e decodificador Base64
O Base64 escreve bytes quaisquer usando 64 caracteres imprimíveis (A–Z, a–z, 0–9, + e /), para que dados binários possam passar por canais que só aceitam texto: documentos JSON e XML, e-mail, cabeçalhos HTTP, variáveis de ambiente ou data: URLs em HTML e CSS. Cada 3 bytes viram 4 caracteres, o que deixa a forma codificada cerca de um terço maior que a original.
Esta ferramenta converte texto (codificado como UTF-8) e arquivos em Base64 e vice-versa. Ela oferece a variante URL-safe conhecida como Base64url, preenchimento opcional e quebra de linhas no estilo MIME, e entende data: URLs. Na decodificação, um texto legível aparece na hora; qualquer outro conteúdo é oferecido como arquivo, com o tipo detectado a partir dos dados sempre que possível.
A conversão acontece inteiramente no seu navegador. Os arquivos são lidos no seu dispositivo e nada é enviado.
Como usar
- Escolha “Codificar” ou “Decodificar” em “Direção”.
- Para codificar, escolha “Texto” e digite ou cole em “Texto a codificar”, ou escolha “Arquivo” e selecione um arquivo de até 25 MB. Marque “Adicionar o prefixo de data: URL” para obter uma data: URL pronta.
- Ajuste as opções se precisar: “Alfabeto URL-safe (- e _)”, “Preenchimento (=)” e “Quebrar linhas em 76 caracteres”.
- Para decodificar, cole Base64 ou uma data: URL completa na caixa, ou use “Abrir um arquivo de texto”. Um texto UTF-8 legível aparece em “Texto decodificado”; outros dados aparecem em “Arquivo decodificado”, com tamanho, tipo e uma pré-visualização em hex.
- Use “Copiar resultado” ou “Copiar texto”, “Baixar .txt” ou “Baixar arquivo” para guardar o resultado, “Inverter” para levá-lo para a direção oposta e “Limpar” para começar de novo.
Recursos
- Texto e arquivos: O texto é convertido como UTF-8, então acentos, alfabetos não latinos e emojis funcionam. Arquivos de qualquer tipo com até 25 MB são aceitos, sem os problemas de tamanho e de Unicode da função btoa do navegador.
- Base64 padrão e URL-safe: Gere qualquer um dos dois alfabetos, com ou sem preenchimento =. O decodificador aceita os dois alfabetos, preenchimento ausente, espaços e quebras de linha.
- Validação clara: Entradas inválidas são explicadas com precisão: qual caractere não é permitido e em que posição, um comprimento que não pode ser Base64 válido ou um preenchimento no lugar errado.
- data: URLs nas duas direções: Transforme um arquivo em uma data: URL com o tipo MIME dele, ou cole uma data: URL para decodificá-la com o tipo que ela declara.
- Saída como texto ou arquivo: Bytes decodificados que formam UTF-8 válido são exibidos como texto. Outros dados são oferecidos para download, com PNG, JPEG, GIF, WebP, PDF e ZIP reconhecidos pelos primeiros bytes, pré-visualização da imagem quando possível e um dump em hex dos primeiros 64 bytes.
Exemplos
Montar um cabeçalho de autenticação Basic
Codificar o texto user:pa55word gera dXNlcjpwYTU1d29yZA==, que vai no cabeçalho Authorization: Basic dXNlcjpwYTU1d29yZA==. Lembre-se de que qualquer pessoa que veja o cabeçalho consegue decodificá-lo de novo.
Ler o payload de um JSON Web Token
A parte do meio de um JWT é Base64url sem preenchimento. Decodificar eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSJ9 mostra {"sub":"1234567890","name":"Ada Lovelace"}. Decodificar não verifica a assinatura do token.
Incorporar um ícone pequeno no CSS
Escolha “Arquivo”, selecione um PNG pequeno e marque “Adicionar o prefixo de data: URL”. O resultado começa com data:image/png;base64, e pode ser usado diretamente em background-image: url(…) ou no atributo src de uma tag <img>.
Salvar um arquivo retornado por uma API
Algumas APIs retornam documentos como uma string Base64 dentro de um JSON. Cole a string no modo de decodificação: se for um PDF, a ferramenta detecta application/pdf e “Baixar arquivo” o salva como decoded.pdf.
Limitações e observações
- É possível codificar arquivos de até 25 MB e abrir arquivos de texto de até 40 MB para decodificar. Resultados muito longos aparecem na caixa como pré-visualização; copiar e baixar sempre usam o resultado completo.
- Os tipos de arquivo são reconhecidos pelo conteúdo apenas para PNG, JPEG, GIF, WebP, PDF e ZIP. Outros dados binários são salvos como arquivo .bin, a menos que uma data: URL informe o tipo.
- O texto é sempre tratado como UTF-8. Base64 de um texto em outra codificação, como UTF-16 ou Windows-1252, não é exibido como texto, e sim oferecido como arquivo.
- Quebras de linha que você digita ou cola em uma caixa de texto são normalizadas para LF pelo navegador, então um texto com finais de linha do Windows (CRLF) é codificado com LF. Codifique o próprio arquivo se os bytes exatos forem importantes.
- A saída com quebra de linhas usa LF. O MIME estrito usa CRLF, mas os decodificadores – inclusive este – aceitam os dois.
- Base64 é uma codificação, não uma criptografia: não protege os dados, e qualquer pessoa pode decodificá-lo.
Perguntas frequentes
Base64 é uma forma de criptografia?
Não. O Base64 só muda a forma como os bytes são escritos, e a decodificação não precisa de chave. Use-o para transportar dados por canais que só aceitam texto, nunca para esconder senhas ou outros segredos.
Por que o Base64 muitas vezes termina com = ou ==?
O Base64 trabalha em grupos de 3 bytes. Quando o comprimento da entrada não é múltiplo de 3, o último grupo é completado com um ou dois sinais = para que o comprimento do texto seja múltiplo de 4. Muitos formatos, como os JWTs, deixam o preenchimento de fora; este decodificador aceita as duas formas.
Qual é a diferença entre Base64 e Base64url?
O Base64url (RFC 4648, seção 5) troca + por - e / por _ para que o texto possa ser usado em URLs e nomes de arquivo sem escape. Fora esses dois caracteres – e o preenchimento, que costuma faltar –, a codificação é idêntica.
Por que aparece “Comprimento inválido” ao decodificar?
Um texto Base64 sem preenchimento nunca pode ter 4n + 1 caracteres, porque um caractere guarda só 6 bits – não o suficiente para um byte inteiro. Isso geralmente significa que o texto foi cortado ou que um caractere foi adicionado ao copiar.
Por que o texto Base64 é maior que o meu arquivo?
Cada 3 bytes são escritos como 4 caracteres, então o texto codificado fica cerca de 33% maior que o original (mais as quebras de linha, se a quebra estiver ativada). Esse é o preço de usar só caracteres imprimíveis e seguros.
Meus arquivos ou textos são enviados?
Não. A codificação e a decodificação são feitas por JavaScript nesta página, e os arquivos são lidos localmente. Nada é enviado para um servidor.