Codificador / Descodificador Base64
Os programadores lidam diariamente com tarefas de codificar e descodificar Base64 , URIs de dados de imagem, payloads de API e anexos de ficheiros dependem disso. Fazer isto manualmente, ou com uma ferramenta pouco fiável, costuma levar a padding quebrado, ficheiros corrompidos ou saída ilegível. Um único carácter errado numa cadeia codificada quebra toda a payload. Encontrar esse erro consome tempo que podia estar a ser usado para entregar.
Este codificador e descodificador Base64 gratuito trata texto, ficheiros e imagens diretamente no seu navegador. Não há envio para servidor, não é necessário registo e nenhum dado sai do seu dispositivo. Alterne entre codificar e descodificar de imediato, ative o modo seguro para URL ou a quebra MIME por linha, e valide qualquer cadeia Base64 com o Validador integrado. Seja o que estiver a construir, este conversor Base64 acerta no resultado à primeira.
Conversão Base64
O que é a codificação Base64?
A codificação Base64 é um esquema de binário para texto que converte dados binários em 64 caracteres ASCII imprimíveis. Bytes brutos, imagens, ficheiros, chaves de encriptação, tudo isso passa a ser uma cadeia composta por A-Z, a-z, 0-9, além de "+" e "/". Também verá isto ser chamado de base 64 encoding. A própria ferramenta costuma ser referida como codificador ou descodificador base 64.
A descodificação Base64 inverte o processo, transformando essa cadeia de texto novamente nos bytes originais exatos. Os dados codificados desta forma permanecem intactos durante o transporte, a garantia que tornou o Base64 o padrão para anexos de e-mail e payloads HTTP. Essa reversibilidade é também exatamente a razão pela qual o Base64 não é encriptação, uma distinção explicada em detalhe mais adiante neste guia.
Como funciona a codificação Base64
O Base64 funciona agrupando os dados de entrada em blocos de 3 bytes (24 bits) e depois voltando a dividi-los em quatro grupos de 6 bits. Cada grupo de 6 bits contém um valor de 0 a 63, que corresponde diretamente a um dos 64 caracteres do alfabeto Base64. Quando o bloco final tem menos de 3 bytes, o padding "=" preenche a lacuna. Isto mantém o comprimento da saída como múltiplo de 4.
Aqui está um exemplo real: codificar a palavra "Cat" em ASCII. Os 24 bits são reorganizados em quatro valores de 6 bits e depois mapeados para caracteres Base64. A tabela abaixo mostra a conversão completa, byte a byte, para que possa ver exatamente como a lógica funciona.
Elemento | C | a | t |
|---|---|---|---|
| Valor ASCII | 67 | 97 | 116 |
| Binário de 8 bits | 01000011 | 01100001 | 01110100 |
| Reagrupado em quatro grupos de 6 bits | 010000 | 110110 | 000101 / 110100 |
| Valor decimal | 16 | 54 | 5 / 52 |
| Carácter Base64 | Q | 2 | F / 0 |
Resultado:Cat→Q2F0
Cada 3 bytes de entrada tornam-se exatamente 4 caracteres Base64. É por isso que a saída Base64 é sempre cerca de 33% maior do que os dados originais. Este processo está formalmente definido na RFC 4648, o padrão da internet que cobre tanto o Base64 como o alfabeto Base64URL. Essa sobrecarga é a troca por compatibilidade garantida; o MIME também limita linhas Base64 a 76 caracteres em sistemas de e-mail.
Como usar este codificador/descodificador Base64
Este codificador e descodificador Base64 foi criado para ser rápido: não há conta para criar nem software para instalar. Quatro separadores cobrem todos os casos de uso: Texto, Ficheiro, Imagem e Validador Base64 para verificar uma cadeia antes de a descodificar. Tudo é processado localmente no seu navegador, o que significa que os seus dados nunca tocam num servidor.
- Escolha um separador: Texto para cadeias, Ficheiro para ficheiros binários (codificar ou descodificar), Imagem para PNG/JPEG/GIF/SVG/WebP, ou Validador Base64 para verificar uma cadeia.
- Nos separadores Texto e Imagem, selecione Codificar ou Descodificar com os botões de opção.
- Cole o seu texto ou cadeia Base64 na caixa de entrada, ou arraste e largue um ficheiro ou imagem na área de envio.
- Ative Seguro para URL (Base64URL) para tokens e URLs, ou Quebra MIME a cada 76 caracteres para saída de e-mail (separadores Texto e Ficheiro).
- Clique em Codificar, Descodificar ou Validar e o resultado, a pré-visualização ou o estado de validação aparecem imediatamente.
Assim que clicar em Codificar ou Descodificar, a caixa de saída é atualizada de imediato com o resultado. O texto codificado contém sempre A-Z, a-z, 0-9, além de "+", "/" e padding "=". Se vir outros caracteres, a entrada não era um Base64 válido; use o separador Validador para confirmar antes de descodificar. Descodificar de volta para texto legível, um processo chamado conversão base64 para texto, funciona da mesma forma: cole, clique em Descodificar e copie.
Exemplos práticos
Exemplos genéricos de uma única palavra não mostram como o Base64 se comporta com entradas reais. A tabela abaixo percorre cinco cenários comuns, desde uma cadeia curta até um segmento de token seguro para URL. Vai saber exatamente o que esperar dos seus próprios dados. Todos os exemplos abaixo usam o alfabeto Base64 padrão com entrada UTF-8, que é o valor por defeito desta ferramenta.
Cenário | Entrada | Saída Base64 |
|---|---|---|
| Texto simples | Hello | SGVsbG8= |
| Payload JSON | {"id":1} | eyJpZCI6MX0= |
| Caracteres especiais / acentos | café! | Y2Fmw6kh |
| Segmento de token seguro para URL (Base64URL, sem padding) | {"sub":"123"} | eyJzdWIiOiIxMjMifQ |
| Imagem (PNG, truncada para exibição) | bytes binários PNG | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... |
Repare que o exemplo seguro para URL usa codificação Base64URL sem padding "=", enquanto o exemplo JSON usa Base64 padrão com padding intacto. O Base64URL substitui "+" por "-" e "/" por "_" exatamente por isso. Ele viaja em segurança dentro de URLs, cookies e cabeçalhos HTTP, onde "+" e "/" podem causar problemas. É por isso que tokens de autenticação, identificadores de sessão e outros dados embebidos em URL quase sempre usam a variante segura para URL.
Converter Base64 em imagem e imagem em Base64
As imagens são um caso de uso comum do Base64. Os programadores codificam-nas em Base64 para as incorporar diretamente em CSS, HTML ou JSON sem um pedido de ficheiro separado. Envie uma imagem para obter um URI de dados Base64, ou cole uma cadeia Base64 para transferir o resultado descodificado. Os formatos suportados são PNG, JPEG, GIF, SVG e WebP.
Converter uma imagem para Base64 produz um URI de dados como data:image/png;base64,iVBORw0KGgo... que pode ir diretamente para um atributo src ou para uma propriedade CSS background-image. Converter Base64 de volta para imagem funciona ao contrário. Cole a cadeia codificada e a ferramenta descodifica-a, mostra uma pré-visualização em direto e oferece uma transferência com um clique. Este ciclo de ida e volta é especialmente útil quando uma resposta de API devolve dados de imagem como cadeia Base64 em vez de ficheiro binário.
Base64 em código: JavaScript, Python e Go
A maioria dos programadores não precisa apenas de uma conversão pontual; precisa de reproduzir a mesma lógica Base64 dentro da própria aplicação. Os excertos abaixo cobrem as três linguagens mais comuns para codificar e descodificar texto. Cada exemplo usa "Hello, world!", com uma saída que corresponde ao que esta ferramenta produz.
JavaScript (navegador)
// Encode
const encoded = btoa("Hello, world!");
console.log(encoded); // SGVsbG8sIHdvcmxkIQ==
// Decode
const decoded = atob(encoded);
console.log(decoded); // Hello, world!Python
import base64
encoded = base64.b64encode(b"Hello, world!")
print(encoded.decode()) # SGVsbG8sIHdvcmxkIQ==
decoded = base64.b64decode(encoded)
print(decoded.decode()) # Hello, world!Go
package main
import (
"encoding/base64"
"fmt"
)
func main() {
encoded := base64.StdEncoding.EncodeToString([]byte("Hello, world!"))
fmt.Println(encoded) // SGVsbG8sIHdvcmxkIQ==
decoded, _ := base64.StdEncoding.DecodeString(encoded)
fmt.Println(string(decoded)) // Hello, world!
}A codificação e descodificação Base64 em JavaScript passam por btoa() e atob(), que funcionam nativamente em todos os navegadores. No entanto, tratam corretamente apenas texto Latin1; para suporte UTF-8 completo, como emoji ou caracteres acentuados, codifique primeiro com TextEncoder. Em Node.js, use Buffer.from(str).toString('base64') para codificar e Buffer.from(b64, 'base64').toString() para descodificar. Python e Go usam as respetivas bibliotecas padrão e tratam UTF-8 de forma nativa.
Base64 é encriptação? (Segurança e privacidade)
Não: Base64 é codificação, não encriptação simétrica, e essa diferença importa mais do que muitos programadores imaginam. A codificação é totalmente reversível por definição. Qualquer pessoa com a cadeia Base64 pode descodificá-la para os dados originais em segundos, sem chave nem palavra-passe. Se precisa de proteger dados sensíveis, o Base64 sozinho não oferece qualquer confidencialidade.
Isto é especialmente importante em contextos de autenticação, onde tokens de acesso e identificadores de sessão são frequentemente codificados em Base64, mas não encriptados. Trate qualquer cadeia Base64 da mesma forma que trataria texto simples. Não coloque segredos, palavras-passe ou chaves privadas nela, a menos que estejam também encriptados primeiro. Para confidencialidade real, a nossa ferramenta Encriptação / Desencriptação AES trata diretamente da encriptação e desencriptação AES no navegador.
No lado da privacidade, esta ferramenta funciona inteiramente no lado do cliente, no seu navegador. As conversões de texto, ficheiro e imagem nunca são enviadas para um servidor. Payloads sensíveis, tokens de API, conteúdos internos de ficheiros ou credenciais que esteja a depurar permanecem sempre na sua máquina. Se estiver a verificar assinaturas de API ou payloads de webhook, o nosso Gerador HMAC gera saída HMAC-SHA256 que pode inspecionar aqui.
Erros comuns de Base64 e como corrigi-los
Os erros de Base64 quase sempre se resumem a um destes três problemas, e cada um tem uma correção rápida. Reconhecer o padrão evita que volte a rever toda a entrada quando o problema é algo simples.
Erro | Causa | Correção |
|---|---|---|
| "Carácter inválido" | A entrada contém caracteres fora de A-Z, a-z, 0-9, +, /, = | Remova espaços, quebras de linha ou aspas soltas antes de descodificar |
| "Padding incorreto" / comprimento não múltiplo de 4 | Perdeu-se ou foi truncado um ou mais caracteres finais "=" | Adicione "=" até o comprimento da cadeia ser múltiplo de 4 |
| A saída descodificada está ilegível | Foi selecionado o conjunto de caracteres errado, ou a cadeia usava Base64URL em vez de Base64 padrão | Mude o conjunto de caracteres para UTF-8, ou substitua "-"/"_" por "+"/"/" antes de descodificar |
Se a sua cadeia veio de uma URL, cookie ou token de autenticação, quase de certeza é Base64URL e não Base64 padrão. É esse o caso da linha “conjunto de caracteres errado” acima. Esta ferramenta deteta automaticamente ambas as variantes, por isso colar um segmento de token ou uma cadeia segura para URL descodifica corretamente sem conversão manual. Se não tiver a certeza de que uma cadeia é Base64 válida, o separador Validador Base64 diz-lhe de imediato.
Base64 vs. outras codificações
O Base64 não é o único esquema de binário para texto, e escolher o certo depende de para onde a saída vai. A tabela abaixo compara o Base64 com as duas codificações que os programadores mais frequentemente confundem com ele.
Codificação | Conjunto de caracteres | Sobrecarga de tamanho | Melhor para |
|---|---|---|---|
| Base64 | 64 caracteres (A-Z, a-z, 0-9, +, /) | ~33% maior | JSON, XML, e-mail (MIME), URI de dados |
| Base64URL | 64 caracteres (A-Z, a-z, 0-9, -, _) | ~33% maior | URLs, cookies, tokens de autenticação, cabeçalhos HTTP |
| Hexadecimal | 16 caracteres (0-9, A-F) | 100% maior | Hashes, checksums, depuração de baixo nível |
| Codificação URL (percent-encoding) | ASCII + sequências "%XX" | Varia consoante o conteúdo | Query strings, dados de formulários |
Hex é mais legível para hashes curtos, mas duplica o tamanho da saída, tornando-se impraticável para ficheiros grandes. A codificação URL padrão foi criada para query strings, não para dados binários. É por isso que o Base64, e o Base64URL em particular, se tornou a escolha predefinida para qualquer dado binário que precise de viajar numa URL. Para percent-encoding em query strings, a nossa ferramenta Codificador / Descodificador URL é a melhor opção; para hashes SHA-256 ou MD5, o nosso Gerador de Hash cobre todos os principais algoritmos.
Perguntas frequentes
Perguntas Frequentes