Enviar um arquivo
  1. base64hub
  2. Web e tokens
  3. Base64URL para Base64

Conversor de Base64URL para Base64: restaurar o preenchimento

Cole uma string Base64URL, como um segmento de JWT, e receba Base64 padrão de volta, com +, / e o número certo de sinais =.

Grátis sem cadastro, sem limites Local nada é enviado Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

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

Como converter Base64URL para Base64

  1. Cole o Base64URL em Entrada · Base64URL. O preenchimento é opcional, e + e / padrão na entrada também funcionam.
  2. O Base64 padrão aparece em Saída · Base64, com - e _ trocados por + e / e o preenchimento restaurado.
  3. Abaixo da saída, Preenchimento (=) vem ativado por padrão; Quebra de linha pode quebrar o resultado em 64 caracteres para PEM ou em 76 para MIME.
  4. Use Copiar saída. O botão Base64 → Base64URL, ou a página Base64 para Base64URL, faz o caminho inverso.

Quanto preenchimento adicionar

O Base64 trabalha em grupos de 4 caracteres. O Base64URL geralmente omite os sinais = que completam o último grupo, então o comprimento diz quantos devolver:

Comprimento mod 4Preenchimento a adicionarExemplo
0nenhumeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 (36 caracteres)
2==PDw_Pz8-Pg (10) vira PDw/Pz8+Pg==
3=eyJyb2xlIjoiYWRtaW4-In0 (23) vira eyJyb2xlIjoiYWRtaW4+In0=
1inválidoum único caractere que sobra não comporta um byte inteiro

O conhecido payload de exemplo eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ tem 70 caracteres, resto 2, então vira a mesma string com == no final. O guia de preenchimento traz o raciocínio completo.

Por que você pode precisar de Base64 padrão

Muitos decodificadores aceitam só o alfabeto padrão, e cada um falha de um jeito quando recebe Base64URL:

  • O base64 -d do GNU coreutils imprime o que conseguiu decodificar até o primeiro - ou _ e depois base64: invalid input.
  • O Base64.getDecoder() do Java lança IllegalArgumentException; para entrada URL-safe, o certo é Base64.getUrlDecoder().
  • O Convert.FromBase64String do .NET lança FormatException diante de -, _ ou de um = ausente.
  • O base64.b64decode do Python é o perigoso: por padrão, descarta caracteres fora do alfabeto padrão sem erro nenhum. b64decode("PDw_Pz8-Pg==") devolve b'<<\x0f\xcf\xc3\xe0' em vez de b'<<???>>'.

O último caso merece um teste em qualquer código que lide com tokens. Bytes errados sem exceção costumam aparecer bem mais tarde, como uma verificação de assinatura que falha ou dados corrompidos.

Base64URL para Base64 no código

import base64

def b64url_to_bytes(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

b64url_to_bytes("PDw_Pz8-Pg")                              # b'<<???>>'
base64.b64encode(b64url_to_bytes("PDw_Pz8-Pg")).decode()   # 'PDw/Pz8+Pg=='

-len(s) % 4 é o número de sinais = que faltam: 0, 1 ou 2 para entrada válida. O urlsafe_b64decode exige o preenchimento, por isso ele é adicionado antes da chamada.

function b64urlToB64(s) {
  const b = s.replace(/-/g, "+").replace(/_/g, "/");
  return b + "=".repeat((4 - (b.length % 4)) % 4);
}
b64urlToB64("PDw_Pz8-Pg");   // 'PDw/Pz8+Pg=='

No Node.js, Buffer.from(s, "base64url").toString("base64") faz o mesmo em uma chamada. Veja as páginas de Python, Java e C# para os decodificadores URL-safe de cada biblioteca padrão.

Problemas comuns

  • “o último grupo de caracteres está incompleto”. O comprimento deixa resto 1. Parte da string se perdeu, muitas vezes em uma quebra de linha ou porque uma URL foi truncada.
  • Um . na entrada. JWTs juntam três segmentos Base64URL com pontos. Converta um segmento de cada vez; o decodificador de JWT aceita o token inteiro.
  • %3D na string. O valor recebeu codificação percentual por cima do Base64URL. Decodifique antes com o decodificador de URL.

Perguntas frequentes

Como adicionar de volta o preenchimento ao Base64URL?

Complete o final com = até chegar a um múltiplo de 4 caracteres: dois sinais para resto 2, um para resto 3. Resto 1 não acontece em dados válidos. Este conversor faz isso por você.

Por que o base64 -d falha em um JWT?

O base64 -d do GNU só conhece o alfabeto padrão e para com invalid input no primeiro - ou _. Converta o segmento aqui antes ou use basenc --base64url -d, que lê o alfabeto URL-safe.

E se a string tiver um caractere a mais?

Uma string Base64URL cujo comprimento deixa resto 1 na divisão por 4 foi cortada ou tem um caractere sobrando. O conversor informa que o último grupo está incompleto; confira como o valor foi copiado.

Preciso de Base64 padrão para ler um JWT?

Não neste site: o decodificador de JWT e o decodificador Base64URL leem Base64URL diretamente. Converta para Base64 padrão quando outra ferramenta ou biblioteca só aceitar essa forma.