Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. Reparar Base64

Reparar Base64

Cole o Base64 que um decodificador rejeita. O reparo desfaz os estragos comuns de JSON, URLs, e-mail e copiar e colar, lista cada mudança feita e entrega uma string limpa no formato que você escolher.

Grátis sem cadastro, sem limites Local nada é enviado Corrige aspas, escapes, %3D, espaços, preenchimento Atualizado 27 de out. de 2026

O que foi corrigido

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como reparar uma string Base64

  1. Cole o valor quebrado em Base64 para verificar. Deixe as aspas, os prefixos e as quebras de linha ao redor; a ferramenta precisa deles para entender o que aconteceu.
  2. Escolha o Formato de saída: padrão com preenchimento, padrão sem preenchimento, URL-safe com ou sem preenchimento, MIME (linhas de 76 caracteres, CRLF) ou PEM (linhas de 64 caracteres).
  3. Leia O que foi corrigido. Cada reparo aparece separado, para você distinguir uma limpeza inofensiva de mudanças que podem ter custado dados.
  4. Copie ou baixe o resultado, clique em Validar o resultado para fazer uma verificação completa ou em Baixar arquivo decodificado para salvar os bytes.

O que o reparo corrige

Você colouO que aconteceuReparado
"SGVsbG8gd29ybGQ\u003d"string JSON com = escapadoSGVsbG8gd29ybGQ=
SGVsbG8%3Dpercent-encoding em uma URLSGVsbG8=
PDw/Pz8 Pg==o + virou espaço em uma query stringPDw/Pz8+Pg==
PDw_Pz8-PgURL-safe e sem preenchimentoPDw/Pz8+Pg==
SGVsbG8gd29ybGQpreenchimento removidoSGVsbG8gd29ybGQ=
SGVsbG8=V29ybGQ=dois valores concatenadosSGVsbG9Xb3JsZA== (HelloWorld)
SGVsbG9=bits não usados diferentes de zeroSGVsbG8=
Authorization: Basic …copiado junto com o nome do cabeçalhosó o token

Ele também remove prefixos data:…;base64, e linhas PEM -----BEGIN …-----, tira aspas simples ao redor, transforma \n e \/ literais de volta em caracteres (o json_encode do PHP escreve \/ por padrão), elimina espaços e quebras de linha, unifica alfabetos misturados +/ e -_ e corrige a quantidade de =.

Em valores concatenados, cada pedaço é decodificado separadamente e os bytes são unidos, o que é o correto quando um programa anexou blocos com preenchimento um atrás do outro. Apagar o = do meio, em vez disso, deslocaria todos os bits seguintes e produziria lixo.

Reparos que podem esconder um problema real

Duas correções aparecem como avisos porque são palpites:

  • Caracteres ilegais removidos. Se a string tinha *, # ou um caractere Unicode perdido, a ferramenta o apaga e lista quais caracteres saíram. Um caractere no meio dos dados pode ter sido um símbolo real que foi corrompido; nesse caso, os bytes decodificados continuarão errados a partir dali.
  • Um caractere solto descartado. Um comprimento com resto 1 não pode ser gerado por nenhum codificador, então há um caractere a mais ou a string foi cortada. A ferramenta descarta o último caractere para que o resto decodifique, mas, se o valor estava truncado, o fim do arquivo se perdeu. Uma imagem truncada costuma mostrar a parte de baixo cinza ou faltando; um ZIP truncado não abre.

Quando qualquer um desses avisos aparecer, tente obter o original de novo: uma linha de log sem cortes, a resposta completa da API ou o anexo direto do servidor de e-mail.

Por que uma correção ingênua não basta

O snippet comum para “consertar” Base64 trata espaços, caracteres URL-safe e preenchimento:

def fix_base64(s):
    s = "".join(s.split())
    s = s.replace("-", "+").replace("_", "/").rstrip("=")
    return s + "=" * (-len(s) % 4)

Ele repara SGVsbG8gd29ybGQ e PDw_Pz8-Pg corretamente. Passe para ele PDw/Pz8 Pg==, em que um + virou espaço, e ele remove o espaço, deixando 9 caracteres de dados. O Python então falha com “number of data characters (9) cannot be 1 more than a multiple of 4”. Escapes de JSON, %3D, blocos colados e prefixos passam do mesmo jeito. O reparo aqui tenta cada correção por vez e só troca espaço por mais quando o resultado tem um comprimento válido.

A correção mais segura a longo prazo está na origem: aplique percent-encoding ao Base64 antes de colocá-lo em uma URL, ou use Base64URL, e mantenha-o longe de lugares que quebram linhas ou escapam texto. Se a string reparada ainda decodificar para algo inesperado, o guia de erros de Base64 cobre texto embaralhado e codificação dupla, e o decodificador Base64 mostra os bytes.

Perguntas frequentes

Como resolver "Incorrect padding" no Python?

Acrescente = até o comprimento ser múltiplo de 4: s + "=" * (-len(s) % 4). Se o erro continuar, a string tem outros danos, como espaços ou escapes; cole aqui para ver o que mais está errado.

Por que tem espaços no meu Base64?

Normalmente um + passou por uma query string de URL ou por um formulário HTML sem percent-encoding, e o lado que recebeu o transformou em espaço. O reparo devolve o + quando isso resulta em um comprimento válido.

Um reparo pode perder dados?

Remover caracteres ilegais ou um caractere final solto pode, e a lista de correções avisa. Se a ferramenta informar que descartou um caractere porque os dados estavam cortados, consiga uma cópia completa do original em vez de confiar no resultado.

O que significa \u003d no fim do meu Base64?

É um escape de JSON para =. Algumas bibliotecas JSON, entre elas o Gson, escapam o = por segurança em HTML. Um parser JSON desfaz isso automaticamente; o reparo faz o mesmo quando você cola o texto bruto.