Decodificação Base64
Decodifique Base64 online grátis, converte strings Base64 em texto original, ideal para debug de APIs e visualização de logs.
Sugestões Relacionadas
O que é Decodificação Base64?
Decodificação Base64 é o processo reverso da codificação Base64: converte uma string composta por 64 caracteres ASCII imprimíveis (A-Z, a-z, 0-9, +, /) de volta aos dados binários originais. Cada 4 caracteres Base64 são decodificados em 3 bytes, permitindo reconstruir fielmente o conteúdo codificado — desde que a string esteja bem-formada.
Ao decodificar uma string Base64 você pode recuperar texto legível (em UTF-8, ASCII ou ISO-8859-1), visualizar o payload de um JWT, ler valores de cabeçalhos HTTP Basic Authentication, inspecionar logs de aplicações que transportam dados em Base64, ou ainda extrair imagens embutidas em Data URIs. É uma operação onipresente em APIs REST, webhooks, OAuth, JSON Web Tokens e sistemas de autenticação.
Existem duas variantes principais: Standard Base64 (RFC 4648 §4), que usa + e / e inclui padding com =, e Base64URL / URL-Safe (RFC 4648 §5), que substitui + por -, / por _ e geralmente omite o padding. Antes de decodificar uma string URL-Safe é preciso converter os caracteres de volta ou configurar a ferramenta para reconhecer a variante — caso contrário o navegador reportará InvalidCharacterError.
A decodificação correta exige atenção ao charset original. Texto em português quase sempre está em UTF-8 (1 a 4 bytes por caractere), enquanto conteúdo gerado por sistemas antigos pode estar em ISO-8859-1 (Latin-1, 1 byte por caractere) ou em ASCII puro. Escolher o charset errado gera caracteres distorcidos, mesmo quando a decodificação binária é tecnicamente bem-sucedida.
Esta ferramenta utiliza o navegador local para decodificar via APIs nativas (atob no JavaScript) combinadas com pré-processamento URL-Safe. Nenhum dado é enviado a servidores — você pode confirmar isso abrindo as ferramentas de desenvolvedor e observando que não há requisições de rede durante a decodificação.
Casos de uso
- Decodificar campos Base64 retornados por APIs para visualizar o conteúdo original
- Restaurar dados codificados em Base64 encontrados em arquivos de log
- Recuperar valores codificados em Base64 em arquivos de configuração (.env, .json, .yaml)
- Diagnosticar erros de decodificação Base64 (padding ausente, caracteres ilegais, variante errada)
- Decodificar header e payload de JWT durante o desenvolvimento para inspecionar claims
- Recuperar credenciais Basic Auth decodificando o cabeçalho Authorization
- Decodificar payloads de webhooks para inspecionar callbacks antes de processar
Como Usar
- Cole a string Base64 que deseja decodificar
- Selecione o charset (UTF-8, ASCII ou ISO-8859-1)
- A ferramenta decodifica Base64 automaticamente e exibe o resultado
- Copie o texto decodificado para usar em depuração ou documentação
Recursos
- Decodificação em tempo real: converte automaticamente enquanto você digita, debounce de 300ms, sem precisar clicar
- Múltiplos charsets suportados: UTF-8, ASCII e ISO-8859-1 cobrindo português, inglês e idiomas multilíngues
- Compatível com URL-Safe Base64: trata - e _ automaticamente, aceita formato sem padding
- Detecção de caracteres ilegais: indica a posição exata do erro na string Base64 ao decodificar
- Copiar e baixar em um clique: copia o resultado decodificado para a área de transferência ou salva como .txt
- Processamento 100% local: nenhum dado é enviado a servidores, preservando privacidade
- Suporte à variantes: Standard e URL-Safe (Base64URL) reconhecidas automaticamente na colagem
Exemplos de Código
Decodificação Base64 em JavaScript (com suporte a UTF-8)
// Decodificar Base64 com suporte a UTF-8 (português, emojis)
function b64Decode(str) {
// Converte string Base64 URL-Safe para Standard
const normalized = str.replace(/-/g, '+').replace(/_/g, '/');
// Recompõe padding se necessário
const padded = normalized + '='.repeat((4 - normalized.length % 4) % 4);
// Decodifica e converte de Latin-1 para UTF-8
return decodeURIComponent(escape(atob(padded)));
}
console.log(b64Decode('SGVsbG8gV29ybGQ=')); // Hello World
console.log(b64Decode('T2zDoQ=='));
// Versão URL-Safe nativa (atob suporta direto em navegadores modernos)
function b64UrlDecode(str) {
return decodeURIComponent(escape(atob(str)));
}Decodificação Base64 em Python
import base64
# Decodificação Standard (UTF-8)
encoded = 'SGVsbG8gV29ybGQ='
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello World
# Decodificação URL-Safe (com padding opcional)
url_safe = 'SGVsbG8gV29ybGQ'
decoded_url = base64.urlsafe_b64decode(url_safe + '=' * (4 - len(url_safe) % 4)).decode('utf-8')
print(decoded_url) # Hello World
# Decodificar payload JWT (header.payload.signature)
def decode_jwt_payload(token):
payload = token.split('.')[1]
# Adiciona padding se necessário
payload += '=' * (4 - len(payload) % 4)
return base64.urlsafe_b64decode(payload).decode('utf-8')
print(decode_jwt_payload('eyJhbGc.eyJzdWIiOiIxMjM.SflKxw'))Decodificação Base64 em Java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
String encoded = "SGVsbG8gV29ybGQ=";
// Decodificação Standard
String decoded = new String(
Base64.getDecoder().decode(encoded),
StandardCharsets.UTF_8
);
System.out.println(decoded); // Hello World
// Decodificação URL-Safe (sem padding)
String urlSafe = "SGVsbG8gV29ybGQ";
String decodedUrl = new String(
Base64.getUrlDecoder().decode(urlSafe),
StandardCharsets.UTF_8
);
System.out.println(decodedUrl);
// Decodificação MIME (com quebras de linha a cada 76 caracteres)
String mime = "SGVsbG8gV29ybGQ=";
String decodedMime = new String(
Base64.getMimeDecoder().decode(mime),
StandardCharsets.UTF_8
);
System.out.println(decodedMime);
}
}Perguntas frequentes
Por que a decodificação Base64 retorna InvalidCharacterError?
As causas mais comuns são: caracteres ilegais como espaços, quebras de linha ou aspas, número incorreto de padding (=), ou uso da variante URL-Safe (-/_ no lugar de +//). Recomendamos limpar a string com a ferramenta de tratamento Base64 antes de decodificar.
Aparecem caracteres estranhos após decodificar — o que fazer?
Geralmente o charset está errado. Se o texto original está em português, selecione UTF-8. Para conteúdo puramente ASCII (caminhos, comandos, identificadores) use ASCII. Para dados legados de sistemas antigos, tente ISO-8859-1.
Qual a diferença entre decodificar Base64 comum e URL-safe?
O Base64 URL-Safe usa - e _ em vez de + e / e normalmente omite o padding = no final. Antes de decodificar, é preciso converter -/_ de volta para +// e recompor o padding correto, ou usar uma ferramenta que reconheça a variante automaticamente.
A decodificação Base64 ajuda em debug de APIs?
Muito. Diversas APIs, tokens OAuth, parâmetros de callback e logs de middleware encapsulam conteúdo em Base64. Decodificar permite ler diretamente o JSON, token ou texto original sem precisar escrever código.
O que é o padding (=) e quando ele é necessário?
O padding garante que o comprimento da string Base64 seja múltiplo de 4. Strings sem padding (comum em URL-Safe) geralmente são aceitas pelo decodificador, mas alguns sistemas exigem o padding completo. O erro mais comum é remover '=' sem perceber e quebrar a decodificação.
Como decodificar o header ou payload de um JWT?
JWT usa Base64URL. Pegue a primeira parte (header) ou a segunda (payload) — entre os pontos — e cole aqui na ferramenta. Não decodifique a terceira parte (assinatura), pois decodificá-la não tem utilidade real e a validação precisa ser criptográfica.
Esta ferramenta funciona offline? Os dados são enviados para algum servidor?
Sim, funciona offline. Todo o processamento ocorre no seu navegador via JavaScript local — nenhum byte sai do seu dispositivo. Você pode confirmar abrindo as ferramentas de desenvolvedor na aba 'Rede' e verificando que não há requisições durante a decodificação.
Como decodificar dados binários (imagens, PDFs) em Base64?
Texto legível aparece normalmente, mas dados binários aparecem ilegíveis no campo de saída. Para recuperar o arquivo original, baixe a saída como .bin ou use uma ferramenta específica de Base64 para imagem que reconstrói o arquivo automaticamente.
Quanto tempo uma string Base64 pode ter?
Não existe limite técnico rígido no navegador, mas strings muito grandes (acima de algumas centenas de MB) podem travar a aba. Para decodificar arquivos binários grandes, prefira ferramentas de linha de comando ou bibliotecas específicas que processem em streaming.
Decodificação Base64 é o mesmo que descriptografia?
Não. Base64 é um esquema de codificação, não de criptografia: qualquer pessoa pode decodificar uma string Base64 sem chave. Para proteger dados confidenciais use criptografia real como AES. Esta ferramenta ajuda a ler dados codificados, não protege segredos.
Solução de Problemas
Decodificação falha com InvalidCharacterError
Texto resultante aparece ilegível ou com caracteres substituídos
String muito longa causa erro 'Maximum call stack size exceeded'
Padding (=) ausente impede a decodificação
Data URI não reconstrói a imagem esperada
Diferentes ferramentas retornam textos diferentes para a mesma string
Glossário
- Base64
- Esquema de codificação binário-para-texto definido na RFC 4648, que representa qualquer sequência de bytes usando 64 caracteres ASCII: A-Z, a-z, 0-9, + e /. É a base da 'decodificação Base64' — processo reverso usado para recuperar dados originais.
- Base64URL (URL-Safe Base64)
- Variante definida em RFC 4648 §5 que troca + por - e / por _, além de frequentemente omitir o padding (=). Usada em JWT, OAuth PKCE, parâmetros de URL e nomes de arquivo. Precisa ser convertida para Base64 Standard antes da decodificação em ferramentas que não reconhecem a variante automaticamente.Ferramenta Base64URLFerramenta JWT
- Padding (=)
- Caractere '=' usado para preencher o final de uma string Base64 até que seu comprimento seja múltiplo de 4. Cada '=' representa um byte de padding. A maioria dos decodificadores aceita omitir o '=' ao decodificar, mas algumas implementações exigem o padding completo.
- atob / btoa
- APIs nativas do navegador para decodificar e codificar Base64 respectivamente. atob ('ASCII to binary') decodifica uma string Base64 retornando uma string binária Latin-1. Para suportar UTF-8 (português, emojis etc.) é necessário combinar atob com decodeURIComponent e escape.Documentação MDN atob()
- UTF-8
- Codificação de caracteres dominante na web, capaz de representar qualquer caractere Unicode usando 1 a 4 bytes por caractere. É o charset padrão para textos em português com acentuação (á, é, í, ó, ú, ã, õ, ç). Strings Base64 que representam texto em português quase sempre devem ser decodificadas como UTF-8.
- ISO-8859-1 (Latin-1)
- Codificação legada de 1 byte por caractere que cobre idiomas da Europa Ocidental. É o charset que o atob do navegador opera nativamente. Strings Base64 geradas por sistemas antigos (Java até a versão 8, alguns bancos de dados) podem estar em ISO-8859-1 e exigir essa seleção.Documentação WHATWG ISO-8859-1
- ASCII
- Codificação de 7 bits (128 caracteres) cobrindo o alfabeto inglês básico, dígitos e símbolos. Útil quando a string Base64 representa apenas comandos, paths ou identificadores sem acentuação. Escolher ASCII em textos com acentos gera perda de informação na decodificação.
- InvalidCharacterError
- Erro lançado pelo navegador (DOMException) quando a string Base64 contém caracteres fora do alfabeto esperado. Causas comuns: espaços ou quebras de linha não tratados, mistura das variantes Standard/URL-Safe, ou URL-encoded indevidamente. A decodificação só prossegue após remover ou normalizar esses caracteres.
Variantes de Base64 — qual decodificar?
| Característica | Standard | URL-Safe |
|---|---|---|
| Caracteres especiais | + / | - _ |
| Padding (=) | Usado | Geralmente omitido |
| Comprimento múltiplo de 4 | Sim | Não obrigatório |
| Padrão | RFC 4648 §4 | RFC 4648 §5 |
| Casos típicos | Data URI, codificação genérica | JWT, OAuth PKCE, parâmetros de URL |
| Tratamento prévio | Decodificar direto | Normalizar - → +, _ → /, recompor padding |
Charsets suportados na decodificação
| Charset | Bytes por caractere | Cobertura | Quando usar |
|---|---|---|---|
UTF-8 | 1 a 4 | Unicode completo (português, emojis, CJK) | Texto moderno da web, APIs atuais, JSON |
ASCII | 1 (7 bits) | Inglês básico, dígitos, símbolos | Logs, paths, identificadores sem acentuação |
ISO-8859-1 | 1 (8 bits) | Latim ocidental (português pré-UTF-8) | Sistemas legados Java ≤ 8, bancos antigos |
Authoritative References
- ReferenceRFC 4648 - The Base16, Base32, and Base64 Data Encodings
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - WindowOrWorkerGlobalScope.atob()
- ReferenceMDN Web Docs - WindowOrWorkerGlobalScope.btoa()
- ReferenceWikipedia - Base64
- ReferenceNode.js - Buffer.from(string, 'base64')
- ReferencePython - base64.b64decode
- Comparação Segura de Strings
- Conversão Binária
- Cifra de César
- Código Morse
- Codificação/Decodificação Hexadecimal
- Vídeo para Base64
- Base64 para Vídeo
- Imagem para Base64
- Base64 para Imagem
- Texto para Base64
- Base64 para Texto
- Verificador de hash de arquivo
- Arquivo para Base64
- Base64 para Arquivo
- Áudio para Base64
- Base64 para Áudio
- Criptografar e descriptografar AES
- Criptografia DES
- Codificador e Decodificador Base32
- Codificar e decodificar Base58
- Codificação Base64
- Decodificação Base64
- Comparação Base64
- Dividir Base64
- Mesclar Base64 em várias linhas
- Formatação Base64
- Verificação de Formato Base64
- Codificação Base64 em lote
- Decodificação Base64 em Lote
- Limpeza de Base64
- Preenchimento Base64
- Estatísticas Base64
- Base64 para Hexadecimal
- Conversor Base64 DataURL
- Conversor Base64-Hex
- Codificador Base85
- Gerador e Verificador HMAC
- Derivação de Chave PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Ferramenta JWT
- Codificação e Decodificação HTML
- Escape Unicode
- Codificação URL
- Base64 URL Safe
- MIME Base64
- Ofuscador Java
- Ofuscador JS
- Ofuscador PHP
- Ofuscação Python