Sobre esta ferramenta
Este codificador / descodificador Base64 gratuito converte texto para e a partir de Base64. É seguro com UTF-8, pelo que emoji, letras acentuadas, chinês, japonês, coreano, árabe e cirílico sobrevivem intactos à ida e volta — o que não se pode dizer de um número surpreendente de ferramentas Base64.
Tudo corre no seu navegador. Nada do que colar é enviado, registado ou visto por alguém. Aqui isso importa mais do que na maioria das ferramentas: as pessoas colam chaves de API, tokens e fragmentos de configuração em conversores Base64 o dia inteiro.
O que é realmente o Base64
O Base64 não é cifra. Também não é compressão. É uma forma de reescrever *quaisquer* dados usando apenas 64 caracteres que podem ser enviados com segurança para quase qualquer lado: A–Z, a–z, 0–9, + e /, com = como enchimento no fim.
A razão de existir é histórica e continua atual. Muitos sistemas foram construídos para transportar texto, não bytes arbitrários — corpos de e-mail, cadeias JSON, atributos XML, cabeçalhos HTTP, URL, variáveis de ambiente. Entregue-lhes um byte em bruto como 0x00 ou 0x1B e algo pelo caminho vai estragá-lo, removê-lo ou recusar a mensagem. O Base64 contorna todo o problema transformando esses bytes em letras e algarismos vulgares a que nada se opõe.
O mecanismo é simples: o Base64 pega nos seus dados 3 bytes de cada vez (24 bits) e reescreve-os como 4 caracteres (6 bits cada). Essa proporção é a razão de a saída Base64 ser sempre cerca de 33% maior do que a entrada. Quando os dados não se dividem exatamente por 3, o último grupo é completado com um ou dois =.
O Base64 não é um segredo
Vale a pena dizê-lo sem rodeios, porque provoca incidentes de segurança reais.
Qualquer pessoa consegue descodificar Base64. Não há chave, nem palavra-passe, nem segredo. Esta própria página descodifica-o num instante, e também o farão todos os programadores, todos os analisadores de registos e qualquer atacante que o encontre. cGFzc3dvcmQxMjM= não é uma palavra-passe escondida — é a palavra password123 com um disfarce muito fino.
Portanto: o Base64 serve para transporte. Não é, nem nunca foi, uma forma de proteger seja o que for. Se algo tem de permanecer ilegível, precisa de cifra a sério. O facto de um valor *parecer* baralhado não significa que *esteja* protegido.
Isto também funciona ao contrário, e é útil: se encontrar uma longa sequência de letras e algarismos terminada em = num registo, numa configuração ou numa URL, é muito provável que seja Base64 — e pode simplesmente lê-la.
Onde o vai encontrar
- Data-URL — data:image/png;base64,iVBORw0KGgo… incorpora uma imagem diretamente em HTML ou CSS, sem ficheiro separado
- Autenticação HTTP Basic — o cabeçalho Authorization é literalmente utilizador:palavra-passe em Base64, que é exatamente por que razão o Basic Auth sem HTTPS é inseguro
- JSON Web Tokens — um JWT são três blocos Base64url unidos por pontos; os dois primeiros são JSON perfeitamente legível
- Anexos de e-mail — o MIME transporta ficheiros binários em Base64 através de sistemas só de texto há décadas
- Ficheiros de configuração e segredos — os secrets do Kubernetes, os ficheiros .env e as variáveis de CI guardam frequentemente valores em Base64, novamente por transporte e não por segurança
- API — qualquer campo que tenha de transportar dados binários dentro de uma cadeia JSON
UTF-8, e por que razão algumas ferramentas falham
O Base64 codifica bytes, não caracteres. Antes de se poder codificar seja o que for, é preciso transformar texto em bytes — e é nesse passo que as ferramentas se partem em silêncio.
O erro clássico é usar uma conversão de um byte por caractere em texto que contém algo fora do ASCII puro. Cole café, 日本語 ou um emoji numa ferramenta escrita assim e obterá um erro ou, pior, uma saída silenciosamente corrompida 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 한국어 codificam-se e descodificam-se exatamente como os escreveu.
Base64 padrão e Base64url
Existem duas variantes, e confundi-las é uma causa frequente de erros do tipo «não é Base64 válido».
O Base64 padrão usa + e / como os dois últimos caracteres. É o que esta ferramenta produz e o que quase tudo espera.
O Base64url troca-os por - e _ e costuma eliminar o enchimento =. Existe porque + e / têm significado próprio dentro de uma URL e de um caminho de ficheiro, pelo que teriam de ser escapados. Os JWT usam Base64url, tal como muitas API que colocam valores codificados num caminho ou numa query string.
Se uma descodificação falhar numa cadeia cheia de - e _, a razão é essa. Trocá-los de volta por + e / costuma resolver.
Como usar
- Cole o seu texto (ou Base64) no campo
- Codifique ou Descodifique com os botões
- Troque para levar o resultado para a entrada e seguir no sentido contrário
- Copie o resultado
Bom saber
- A saída Base64 é ~33% maior do que a entrada. Uma imagem de 3 MB passa a cerca de 4 MB como data-URL — vale a pena lembrar antes de incorporar ficheiros grandes.
- Os espaços costumam ser inofensivos. Muitos sistemas quebram o Base64 a 76 caracteres por linha; os descodificadores normalmente ignoram as mudanças de linha.
- O = só aparece no fim, nunca no meio. Um ou dois, nunca três.
- O comprimento é sempre múltiplo de 4 depois de incluído o enchimento. Se o seu não for, algo foi truncado.
- Descodificar dados binários arbitrários para texto parecerá disparate. Se descodificar um PNG obtém bytes, não palavras — está correto, não é uma falha.
Perguntas frequentes
O Base64 é cifra?
Não, e esta é a coisa mais importante a saber. O Base64 não tem chave nem segredo. Quem vir a cadeia consegue descodificá-la num passo, incluindo esta página. É uma codificação para transporte seguro, não uma proteção. Nunca a use para esconder uma palavra-passe, um token ou qualquer outra coisa que importe.
Porque é que o meu Base64 termina com um ou dois sinais de igual?
É enchimento. O Base64 trabalha em grupos de 3 bytes que se tornam 4 caracteres. Quando os seus dados não se dividem exatamente por 3, o último grupo fica curto e é completado com = para que o comprimento total continue a ser múltiplo de 4. Um byte que sobre dá ==, dois bytes dão =, e um múltiplo exato não dá enchimento nenhum.
Porque é que a minha cadeia Base64 é mais longa do que o original?
Porque cada 3 bytes se tornam 4 caracteres, a saída é sempre cerca de 33% maior do que a entrada, mais até dois caracteres de enchimento. É inevitável e é o preço de tornar dados arbitrários transportáveis num campo de texto. Se o tamanho importa, comprima os dados antes de os codificar, não depois.
Posso codificar uma imagem ou um PDF em Base64?
Sim, e é um uso comum — é assim que as data-URL incorporam imagens em HTML e CSS. Esta ferramenta em particular trabalha sobre texto colado, pelo que serve para tokens, JSON, valores de configuração e cadeias Base64 existentes. Lembre-se do aumento de 33% antes de incorporar algo grande.
Porque é que a descodificação falha com «não é Base64 válido»?
As causas habituais são uma cadeia truncada, caracteres soltos colados juntamente com ela, ou Base64url. O Base64url usa - e _ onde o Base64 padrão usa + e /, e muitas vezes tem o enchimento removido — por isso um bloco de JWT colado tal e qual pode não descodificar. Troque - por + e _ por / e tente novamente.
O meu texto é enviado para um servidor?
Não. Toda a conversão acontece no seu navegador usando as suas funções integradas. Nada é enviado e nada é guardado, e é por isso que a ferramenta continua a funcionar com a ligação desligada. Dada a frequência com que se colam credenciais em ferramentas Base64, é precisamente esse o ponto.
Ferramentas relacionadas
- Codificador / descodificador de URL — a outra codificação que se encontra constantemente em URL e query strings
- Descodificador JWT — lê por si 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 sentido único
- Imagem para Base64 — transformar um verdadeiro ficheiro de imagem numa data-URL