Sobre esta ferramenta
Este codificador / decodificador Base64 gratuito converte texto para Base64 e de volta. Ele é seguro com UTF-8, então emojis, letras acentuadas, chinês, japonês, coreano, árabe e cirílico sobrevivem intactos na ida e na volta — o que não dá para dizer de um número surpreendente de ferramentas Base64.
Tudo roda no seu navegador. Nada do que você cola é enviado, registrado ou visto por ninguém. Aqui isso importa mais do que na maioria das ferramentas: as pessoas colam chaves de API, tokens e trechos de configuração em conversores Base64 o dia inteiro.
O que o Base64 realmente é
Base64 não é criptografia. Também não é compressão. É um jeito de reescrever *qualquer* dado usando só 64 caracteres que podem ser enviados com segurança para quase qualquer lugar: A–Z, a–z, 0–9, + e /, com = como preenchimento no final.
O motivo de ele existir é histórico e continua valendo. Muitos sistemas foram feitos para transportar texto, e não bytes quaisquer — corpo de e-mail, strings JSON, atributos XML, cabeçalhos HTTP, URLs, variáveis de ambiente. Entregue a eles um byte bruto como 0x00 ou 0x1B e algo no caminho vai corrompê-lo, removê-lo ou recusar a mensagem. O Base64 contorna o problema todo transformando esses bytes em letras e números comuns, que ninguém rejeita.
O mecanismo é simples: o Base64 pega seus dados 3 bytes por vez (24 bits) e os reescreve como 4 caracteres (6 bits cada). Essa proporção é o motivo de a saída em Base64 ser sempre cerca de 33% maior que a entrada. Quando os dados não se dividem exatamente por 3, o último grupo é completado com um ou dois =.
Base64 não é segredo
Vale a pena dizer isso com todas as letras, porque causa incidentes de segurança reais.
Qualquer pessoa consegue decodificar Base64. Não há chave, nem senha, nem segredo. Esta própria página decodifica num instante, e o mesmo vale para qualquer programador, qualquer analisador de logs e qualquer invasor que encontre o valor. cGFzc3dvcmQxMjM= não é uma senha escondida — é a palavra password123 com um disfarce bem fininho.
Então: o Base64 serve para transporte. Ele não é, e nunca foi, um jeito de proteger nada. Se algo precisa continuar ilegível, precisa de criptografia de verdade. O fato de um valor *parecer* embaralhado não significa que ele *esteja* protegido.
Isso também funciona ao contrário, e é útil: se você encontrar uma sequência longa de letras e números terminada em = num log, numa configuração ou numa URL, é bem provável que seja Base64 — e você pode simplesmente lê-la.
Onde você vai encontrar Base64
- Data URLs — data:image/png;base64,iVBORw0KGgo… embute uma imagem direto no HTML ou no CSS, sem arquivo separado
- Autenticação HTTP Basic — o cabeçalho Authorization é literalmente usuario:senha em Base64, e é exatamente por isso que Basic Auth sem HTTPS é inseguro
- JSON Web Tokens — um JWT são três blocos em Base64url unidos por pontos; os dois primeiros são JSON perfeitamente legível
- Anexos de e-mail — o MIME transporta arquivos binários em Base64 por sistemas só de texto há décadas
- Arquivos de configuração e segredos — os secrets do Kubernetes, os arquivos .env e as variáveis de CI costumam guardar valores em Base64, de novo por transporte e não por segurança
- APIs — qualquer campo que precise levar dados binários dentro de uma string JSON
UTF-8, e por que algumas ferramentas falham
O Base64 codifica bytes, não caracteres. Antes de codificar qualquer coisa, é preciso transformar o texto em bytes — e é nessa etapa que as ferramentas quebram sem avisar.
O erro clássico é usar uma conversão de um byte por caractere num texto que tem algo fora do ASCII puro. Cole café, 日本語 ou um emoji numa ferramenta feita desse jeito e você recebe um erro ou, pior, uma saída corrompida sem aviso, que volta como caracteres sem sentido.
Esta ferramenta converte primeiro o seu texto para UTF-8, a codificação que a web realmente usa. é, →, 🎉 e 한국어 são codificados e decodificados exatamente como você digitou.
Base64 padrão e Base64url
Existem duas variantes, e confundir as duas é uma causa frequente de erros do tipo "não é um Base64 válido".
O Base64 padrão usa + e / como os dois últimos caracteres. É o que esta ferramenta gera e o que quase tudo espera.
O Base64url troca esses dois por - e _ e costuma eliminar o preenchimento =. Ele existe porque + e / têm significado próprio dentro de uma URL e de um caminho de arquivo, e precisariam ser escapados. Os JWTs usam Base64url, assim como muitas APIs que colocam valores codificados num caminho ou numa query string.
Se a decodificação falhar numa string cheia de - e _, o motivo é esse. Trocar de volta por + e / costuma resolver.
Como usar
- Cole seu texto (ou Base64) no campo
- Codificar ou Decodificar com os botões
- Trocar para levar o resultado para a entrada e seguir no sentido contrário
- Copiar o resultado
Bom saber
- A saída em Base64 é ~33% maior que a entrada. Uma imagem de 3 MB vira cerca de 4 MB como data URL — vale lembrar antes de embutir arquivos grandes.
- Espaços costumam ser inofensivos. Muitos sistemas quebram o Base64 em linhas de 76 caracteres; os decodificadores normalmente ignoram as quebras de linha.
- O = só aparece no final, nunca no meio. Um ou dois, nunca três.
- O tamanho é sempre múltiplo de 4 contando o preenchimento. Se o seu não for, algo foi cortado.
- Decodificar dados binários quaisquer como texto vai parecer sem sentido. Se você decodificar um PNG, recebe bytes, não palavras — isso está certo, não é defeito.
Perguntas frequentes
Base64 é criptografia?
Não, e essa é a coisa mais importante para saber. O Base64 não tem chave nem segredo. Quem vir a string consegue decodificá-la em um passo, inclusive esta página. É uma codificação para transporte seguro, não uma proteção. Nunca use Base64 para esconder uma senha, um token ou qualquer outra coisa que importe.
Por que meu Base64 termina com um ou dois sinais de igual?
É preenchimento. O Base64 trabalha com grupos de 3 bytes que viram 4 caracteres. Quando seus dados não se dividem exatamente por 3, o último grupo fica incompleto e é completado com = para que o tamanho total continue sendo múltiplo de 4. Um byte sobrando dá ==, dois bytes dão =, e um múltiplo exato não tem preenchimento nenhum.
Por que minha string Base64 é maior que o original?
Porque cada 3 bytes viram 4 caracteres, a saída é sempre cerca de 33% maior que a entrada, mais até dois caracteres de preenchimento. Isso é inevitável e é o preço de tornar dados quaisquer transportáveis num campo de texto. Se o tamanho importa, comprima os dados antes de codificar, e não depois.
Posso codificar uma imagem ou um PDF em Base64?
Sim, e é um uso comum — é assim que as data URLs embutem imagens em HTML e CSS. Esta ferramenta trabalha com texto colado, então serve para tokens, JSON, valores de configuração e strings Base64 que você já tem. Lembre do aumento de 33% antes de embutir algo grande.
Por que a decodificação falha com "não é um Base64 válido"?
As causas mais comuns são uma string cortada, caracteres a mais colados junto, ou Base64url. O Base64url usa - e _ onde o Base64 padrão usa + e /, e muitas vezes vem sem o preenchimento — por isso um bloco de JWT colado do jeito que está pode não decodificar. Troque - por + e _ por / e tente de novo.
Meu texto é enviado para um servidor?
Não. Toda a conversão acontece no seu navegador, usando as funções nativas dele. Nada é enviado e nada é salvo, e é por isso que a ferramenta continua funcionando sem internet. Considerando quantas vezes as pessoas colam credenciais em ferramentas Base64, esse é justamente o ponto.
Ferramentas relacionadas
- Codificador / Decodificador de URL — a outra codificação que aparece o tempo todo em URLs e query strings
- Decodificador JWT — lê para você os blocos Base64url de um token, sem trocas manuais
- Gerador de hash — MD5, SHA-1 e SHA-256, que, ao contrário do Base64, são de mão única
- Imagem para Base64 — transformar um arquivo de imagem de verdade numa data URL
- Tradutor binário — ver os mesmos bytes UTF-8 em binário, hexadecimal ou decimal