← Todas as ferramentas

Codificar e Decodificar Base64

Codifique e decodifique Base64 na hora pelo navegador. Saiba o que é Base64, por que ele aumenta 33% do tamanho e por que é codificação, não criptografia.

O que é o Base64 e por que ele existe

O Base64 é um esquema de codificação de binário para texto. Ele pega bytes crus - o tipo de dado que compõe imagens, arquivos compactados, chaves criptográficas ou qualquer outra coisa que não seja texto legível comum - e os reescreve usando um alfabeto pequeno e seguro de 64 caracteres imprimíveis: as 26 letras maiúsculas A-Z, as 26 letras minúsculas a-z, os dez dígitos 0-9 e dois símbolos extras, geralmente + e /. Um sinal de igual é usado como preenchimento no final. Como cada caractere que ele produz é ASCII comum, o resultado consegue trafegar por sistemas que foram projetados apenas para lidar com texto.

É essa a razão de o Base64 ter sido inventado. Muitos protocolos antigos - o e-mail sendo o exemplo clássico - presumem que o conteúdo que carregam é texto. Se você lhes entrega binário cru, alguns bytes são deturpados, removidos ou interpretados como caracteres de controle, e os dados chegam corrompidos. O Base64 contorna o problema convertendo os bytes em uma forma que qualquer canal seguro para texto deixa passar sem alteração. Os dados originais podem então ser reconstruídos com exatidão do outro lado.

Fluxo abstrato e brilhante de dados binários transformando-se em um fluxo de caracteres de texto em índigo escuro com luz ciano e dourada
O Base64 remodela bytes crus em um fluxo de caracteres seguro e compatível com texto.

Como a conversão funciona

Mecanicamente, o Base64 agrupa a entrada em blocos de três bytes - isto é, 24 bits - e então refatia esses mesmos 24 bits em quatro grupos de seis bits cada. Seis bits podem representar 64 valores possíveis, que é exatamente por que o alfabeto tem 64 caracteres. Assim, três bytes de entrada sempre viram quatro caracteres de saída. Quando o comprimento da entrada não é um múltiplo exato de três, o codificador preenche o grupo final com um ou dois caracteres = para que o decodificador saiba onde os dados reais terminam.

Essa proporção de quatro para três também é de onde vem a famosa penalidade de tamanho: a saída do Base64 é cerca de 33% maior que os dados originais. Se o texto codificado for quebrado em linhas de largura fixa, como os padrões de e-mail muitas vezes exigem, você paga mais alguns por cento por causa das quebras de linha. Esse custo é o preço da compatibilidade e, para a maioria dos usos, é uma troca justa.

Onde você se depara com o Base64

Depois que você sabe o que procurar, o Base64 aparece por toda parte na computação do dia a dia:

  • Data URIs. Uma imagem ou fonte pequena pode ser embutida diretamente em HTML ou CSS com uma URI data:, com o conteúdo do arquivo escrito como Base64. O navegador o decodifica inline, poupando uma requisição de rede separada.
  • Anexos de e-mail. O MIME, o padrão que permite ao e-mail carregar arquivos, se apoia no Base64 para mover anexos binários por um sistema de correio só de texto sem danos.
  • Autenticação HTTP Basic. O conhecido cabeçalho Authorization: Basic ... é apenas um nome de usuário e uma senha unidos por dois-pontos e codificados em Base64 - que é exatamente por que a autenticação Basic deve sempre rodar sobre HTTPS.
  • Tokens e configurações. JSON Web Tokens, certificados, chaves SSH e incontáveis valores de configuração são armazenados ou transmitidos como Base64 para que sobrevivam ao copiar e colar e ao armazenamento baseado em texto.

Codificação não é criptografia

Esta é a única coisa mais importante de entender, e ela engana tanto iniciantes quanto desenvolvedores experientes. O Base64 não é criptografia e não oferece nenhuma segurança. Não há chave secreta, não há senha e não há nada de privado nele. A transformação é totalmente pública e completamente reversível: qualquer um que veja uma string Base64 consegue decodificá-la de volta aos bytes originais em um segundo, usando uma ferramenta exatamente como esta.

Portanto o Base64 é um péssimo esconderijo para senhas, chaves de API ou qualquer valor sensível. Se uma string apenas parece embaralhada, isso não a torna protegida. A criptografia, por outro lado, transforma os dados com uma chave secreta de modo que só quem tem essa chave consegue lê-los. Os dois resolvem problemas diferentes: a criptografia protege a confidencialidade, o Base64 protege a compatibilidade. Eles costumam ser usados juntos - você pode criptografar dados com AES e então codificar o texto cifrado em Base64 para que ele possa trafegar por um canal de texto - mas um nunca substitui o outro.

Uma imagem abstrata dissolvendo-se em um fluxo de caracteres brilhantes e se reagrupando, azul-marinho índigo com ciano e dourado
Codificar e decodificar são perfeitamente reversíveis - e não oferecem sigilo algum.

Codificar vs. decodificar

As duas direções são simples espelhos uma da outra. Codificar pega seu texto ou binário original e produz a string de caracteres Base64. Decodificar pega uma string Base64 e reconstrói exatamente os bytes originais. Nossa ferramenta faz as duas coisas diretamente no seu navegador - nada do que você digita ou cola é enviado a um servidor, então a operação é inteiramente local e privada. Isso torna seguro decodificar um token que você está depurando ou codificar um trecho que deseja embutir, sem que seus dados saiam da página.

Para conversões relacionadas, veja nossa ferramenta de codificar/decodificar URL para codificação por porcentagem, ou o decodificador de JWT quando você precisar inspecionar os segmentos Base64 dentro de um token. Você os encontra junto com o restante das nossas ferramentas para desenvolvedores.

Perguntas frequentes

O Base64 é uma forma de criptografia?

Não. O Base64 é uma codificação, não criptografia. Ele não usa chave e é totalmente reversível por qualquer pessoa, então não oferece segurança. Use criptografia de verdade, como AES ou RSA, para proteger dados sensíveis.

Por que o Base64 deixa os dados maiores?

O Base64 transforma cada três bytes de entrada em quatro caracteres de saída, o que acrescenta cerca de 33% ao tamanho. Se a saída for dividida em linhas de comprimento fixo, as quebras de linha adicionam mais alguns por cento por cima.

Quais caracteres o Base64 usa?

O alfabeto padrão são as 26 letras maiúsculas, as 26 letras minúsculas, os dígitos de 0 a 9, mais os símbolos de mais e de barra, com o sinal de igual usado como preenchimento no final.

Posso armazenar senhas com segurança em Base64?

Não. O Base64 só muda a aparência dos dados, não quem pode lê-los. Qualquer um consegue decodificá-los instantaneamente. Senhas devem passar por hash com um algoritmo forte, e segredos devem ser criptografados.

Esta ferramenta de Base64 é privada?

Sim. A codificação e a decodificação acontecem inteiramente no seu navegador. Nada do que você insere é enviado ou transmitido a qualquer servidor, então seus dados permanecem no seu próprio dispositivo.

Qual é a diferença entre codificar e decodificar?

Codificar converte o texto ou binário original em uma string Base64. Decodificar reverte isso, transformando uma string Base64 de volta nos bytes originais exatos. São operações espelhadas.