Decodificação Base64

Entrada Base64
0 caracteres

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

  1. Cole a string Base64 que deseja decodificar
  2. Selecione o charset (UTF-8, ASCII ou ISO-8859-1)
  3. A ferramenta decodifica Base64 automaticamente e exibe o resultado
  4. 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ísticaStandardURL-Safe
Caracteres especiais+ /- _
Padding (=)UsadoGeralmente omitido
Comprimento múltiplo de 4SimNão obrigatório
PadrãoRFC 4648 §4RFC 4648 §5
Casos típicosData URI, codificação genéricaJWT, OAuth PKCE, parâmetros de URL
Tratamento prévioDecodificar diretoNormalizar - → +, _ → /, recompor padding

Charsets suportados na decodificação

CharsetBytes por caractereCoberturaQuando usar
UTF-81 a 4Unicode completo (português, emojis, CJK)Texto moderno da web, APIs atuais, JSON
ASCII1 (7 bits)Inglês básico, dígitos, símbolosLogs, paths, identificadores sem acentuação
ISO-8859-11 (8 bits)Latim ocidental (português pré-UTF-8)Sistemas legados Java ≤ 8, bancos antigos

Authoritative References