Pular para o conteúdo

Codificador e Decodificador Base64 - Ferramenta Online Gratuita de Conversão Base64

Ferramenta gratuita de codificação e decodificação base64. Converta texto para Base64 ou decodifique strings Base64 instantaneamente. Suporta codificação padrão e URL-safe. Não requer login.

Codificador/Decodificador Base64

Converter texto para e de codificação Base64

Calculadora de carregamento...
📚

Documentação

O que é a codificação Base64?

Base64 é uma forma de transformar qualquer dado, incluindo dados binários como imagens, em texto simples composto apenas por letras, dígitos e alguns símbolos. Um codificador base64 converte os dados para esse formato de texto. Um decodificador base64 os transforma novamente nos dados originais. Os programas usam Base64 para transportar dados binários com segurança por sistemas, como e-mail ou JSON, que esperam texto simples.

Base64 usa um alfabeto de 64 caracteres:

  • Letras maiúsculas de A a Z (26 caracteres)
  • Letras minúsculas de a a z (26 caracteres)
  • Dígitos de 0–9 (10 caracteres)
  • Dois símbolos, geralmente + e / (2 caracteres)

Alguns sistemas também usam um sinal de igualdade (=) no final da saída como preenchimento. O preenchimento não faz parte do alfabeto de 64 caracteres; ele apenas completa o comprimento.

Por que o Base64 existe

Muitos protocolos de texto antigos, incluindo o e-mail (SMTP) e algumas partes do HTTP, foram desenvolvidos para transportar texto ASCII de 7 bits. Eles podem corromper bytes binários brutos, como os bytes dentro de uma imagem JPEG. O Base64 evita isso representando cada byte usando apenas caracteres seguros e imprimíveis. Por isso, anexos de e-mail, imagens incorporadas em páginas da web e campos binários dentro de JSON normalmente passam primeiro pelo Base64.

Base64 não é compactação nem criptografia. A saída codificada é sempre maior que a entrada, e qualquer pessoa pode decodificá-la sem uma senha ou chave.

Como usar esta ferramenta

  1. Digite ou cole o texto na caixa de entrada.
  2. Selecione "Codificar para Base64" para converter texto em Base64 ou "Decodificar de Base64" para converter uma string Base64 de volta em texto.
  3. Ative a conversão ao vivo para que a saída seja atualizada automaticamente enquanto você digita.
  4. Copie o resultado com o botão de cópia.

A ferramenta lê e grava texto Unicode padrão, portanto letras acentuadas, símbolos e emojis são codificados e decodificados corretamente, não apenas letras simples do inglês.

Como funciona a codificação Base64

Base64 transforma cada 3 bytes de entrada (24 bits) em 4 caracteres de saída (cada um contendo 6 bits), porque 24 dividido por 6 é igual a 4.

  1. Pegue os bytes de entrada e escreva-os em binário.
  2. Agrupe os bits em blocos de 24 bits (3 bytes).
  3. Divida cada bloco de 24 bits em quatro partes de 6 bits.
  4. Consulte cada número de 6 bits (de 0 a 63) no alfabeto Base64 e anote o caractere correspondente.

Se o comprimento da entrada não for múltiplo de 3, o último bloco será incompleto. O codificador o preenche com bits zero e depois adiciona caracteres = à saída, para que o resultado continue vindo em grupos de 4:

  • Um byte restante produz 2 caracteres Base64 mais ==.
  • Dois bytes restantes produzem 3 caracteres Base64 mais um =.

Exemplo de codificação Base64

Codificação da palavra "Hello":

  1. Valores ASCII: 72, 101, 108, 108, 111
  2. Binário: 01001000 01100101 01101100 01101100 01101111
  3. Os primeiros 3 bytes (24 bits) são divididos em quatro grupos de 6 bits: 010010 000110 010101 101100, que correspondem aos números 18, 6, 21, 44 → caracteres S, G, V, s.
  4. Os 2 bytes restantes (16 bits) são divididos em três grupos de 6 bits, com 2 bits zero adicionados ao final: 011011 000110 111100, que correspondem aos números 27, 6, 60 → caracteres b, G, 8.
  5. Como sobraram 2 bytes, um = é adicionado ao final.
  6. Resultado: SGVsbG8=

A decodificação inverte essas etapas: cada caractere é mapeado de volta para seu número de 6 bits, os bits são unidos em um fluxo, e esse fluxo é lido novamente em bytes de 8 bits.

Fórmula do comprimento codificado em Base64

Para uma entrada de n bytes, o comprimento codificado em caracteres é:

comprimento_codificado = 4 × ⌈n / 3⌉

em que ⌈x⌉ significa arredondar para cima até o número inteiro mais próximo. Essa fórmula mostra por que a saída Base64 é sempre cerca de um terço maior que a entrada: 4 caracteres de saída para cada 3 bytes de entrada representam um aumento de 33%.

Onde o Base64 é usado

  • Anexos de e-mail (MIME). O e-mail foi desenvolvido para texto, portanto os anexos de arquivos são convertidos em Base64 antes do envio, fazendo com que o arquivo anexado fique cerca de 33% maior que o original.
  • URIs de dados. Imagens pequenas podem ser incorporadas diretamente em HTML ou CSS como texto, por exemplo data:image/png;base64,iVBORw0KGgo..., evitando uma solicitação separada de arquivo. Isso funciona melhor para arquivos pequenos, pois arquivos grandes aumentam muito o tamanho da página e não podem ser armazenados separadamente em cache.
  • APIs e JSON. O JSON não tem uma forma nativa de armazenar dados binários brutos, portanto arquivos binários enviados por uma API JSON geralmente são codificados primeiro em Base64.
  • Autenticação básica HTTP. O cabeçalho Authorization codifica um nome de usuário e uma senha como Base64, por exemplo Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Isso não é seguro por si só; as credenciais podem ser lidas por qualquer pessoa que as intercepte, portanto a autenticação básica só deve ser usada via HTTPS.
  • JSON Web Tokens (JWT). Cada uma das três partes de um JWT é codificada com Base64URL, uma variante segura para uso dentro de uma URL.
  • Armazenamento de dados binários como texto. Bancos de dados ou arquivos de configuração que aceitam apenas texto às vezes armazenam dados binários como uma string Base64.

Base64 em comparação com outras codificações

Base64 seguro para URLs substitui os caracteres padrão + e / por - e _, porque + e / têm um significado especial dentro de uma URL. Ele é usado em JWTs, parâmetros de consulta de URLs e nomes de arquivos. Esta ferramenta produz saída Base64 padrão; a conversão para o formato seguro para URLs requer apenas a troca desses dois caracteres.

Base32 usa um alfabeto de 32 caracteres, portanto cada caractere carrega 5 bits em vez de 6. Ele converte cada 5 bytes em 8 caracteres, com uma sobrecarga de 60% (8 ÷ 5 = 1,6), em comparação com 33% no Base64. O Base32 é escolhido quando a saída precisa ser digitada manualmente ou lida ao telefone, pois evita letras maiúsculas e minúsculas misturadas e caracteres facilmente confundidos.

Hexadecimal usa 16 caracteres (0–9, A–F) e precisa de 2 caracteres por byte, dobrando o tamanho (sobrecarga de 100%). É comum para exibir hashes, cores e endereços MAC, nos quais a legibilidade é mais importante que o tamanho compacto.

Quando não usar Base64

O Base64 aumenta o tamanho e o custo de CPU, portanto não é adequado para arquivos grandes enviados por uma rede; enviar os dados binários brutos diretamente é menor e mais rápido. Ele nunca deve ser usado para ocultar informações sensíveis, como senhas ou chaves de API, pois sua decodificação não exige nenhum segredo. Para armazenar arquivos grandes, o tipo de coluna binária de um banco de dados ou um serviço de armazenamento de arquivos geralmente é melhor que uma string Base64 longa em um campo de texto.

Erros comuns

  • Ignorar a conversão para UTF-8. Codificar texto com letras acentuadas ou emojis sem primeiro convertê-lo em bytes UTF-8 pode corromper a saída.
  • Remover o preenchimento. Alguns sistemas removem os caracteres = finais. A maioria dos decodificadores ainda funciona se a string for completada novamente até um múltiplo de 4, mas nem todos os aceitam, portanto é mais seguro manter o preenchimento.
  • Quebras de linha restantes. Codificadores MIME antigos inserem uma quebra de linha a cada 76 caracteres; a maioria dos decodificadores modernos espera uma string contínua, sem essas quebras.
  • Confundir as variantes. O Base64 padrão e o Base64 seguro para URLs usam caracteres diferentes para as mesmas duas posições do alfabeto; decodificar com a variante errada produz dados sem sentido ou um erro.

Dúvidas frequentes

O Base64 é uma forma de criptografia? Não. É uma codificação de texto reversível, não uma criptografia. Qualquer pessoa pode decodificar instantaneamente uma string Base64 sem uma senha. Use um algoritmo de criptografia, como AES, se os dados precisarem permanecer secretos.

Por que o Base64 aumenta o tamanho dos dados? Porque usa um caractere completo para transportar apenas 6 bits, enquanto um byte bruto armazena 8 bits. Converter 3 bytes (24 bits) em 4 caracteres significa que a saída tem 4/3, ou cerca de 33%, a mais que a entrada.

O Base64 pode codificar imagens e outros arquivos binários? Sim. Qualquer arquivo binário, incluindo imagens, PDFs e áudio, pode ser codificado em Base64 e decodificado novamente byte a byte. Ele é usado com frequência para imagens pequenas incorporadas em HTML ou CSS, mas é uma opção inadequada para arquivos grandes.

Qual é a diferença entre Base64 e Base64URL? O Base64URL troca os caracteres padrão + e / por - e _, de modo que o resultado possa ser colocado com segurança dentro de uma URL ou nome de arquivo sem escape adicional. Os JWTs usam Base64URL por esse motivo.

Por que minha string Base64 apresenta um erro de "inválido" ao ser decodificada? As causas mais comuns são caracteres que não pertencem ao alfabeto Base64, como - e _, usados pela variante segura para URLs, ou uma string cujo comprimento é um a mais que um múltiplo de 4. Nenhuma string Base64 válida tem esse comprimento. A decodificação também falha quando os bytes decodificados não são texto UTF-8 válido. Esta ferramenta ignora espaços e quebras de linha dentro da string e ainda decodifica uma string cujo preenchimento final = foi removido.

De onde vem o Base64? A técnica remonta aos primeiros métodos de envio de dados binários por sistemas de e-mail que aceitavam apenas texto, na década de 1980, e foi padronizada formalmente como parte do MIME na RFC 2045, em 1996. A especificação de referência atual para Base64, Base32 e Base16 é a RFC 4648.