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

Decodificador Base64URL: decodificar Base64 URL-safe

Cole uma string Base64 URL-safe, como um segmento de token ou um parâmetro de URL, e leia o que tem dentro. Os caracteres - e _ são reconhecidos automaticamente e o preenchimento = ausente é restaurado.

Grátis sem cadastro, sem limites Local nada é enviado Automático preenchimento restaurado Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

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

Como decodificar Base64URL

  1. Cole a string em Entrada · Base64. A página abre com um exemplo URL-safe.
  2. Leia o resultado em Saída · texto. A linha de status mostra a variante (Base64URL ou Standard), a contagem de bytes decodificados e o tipo detectado. Se faltava preenchimento, aparece “Preenchimento ausente adicionado automaticamente.”
  3. JSON, o conteúdo habitual dos tokens, é indentado pela opção Formatar JSON.
  4. Para conteúdo binário, como hashes ou IDs aleatórios, a ferramenta avisa que os dados são binários e indica um decodificador adequado.
  5. Use Copiar saída ou Baixar para levar o resultado.

Para codificar, use o codificador Base64URL. Para converter uma string Base64URL em Base64 padrão sem decodificá-la, use Base64URL para Base64.

Exemplos

Base64URLDecodificadoObservação
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9{"alg":"HS256","typ":"JWT"}Um header de JWT típico
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSIsImFkbWluIjp0cnVlfQ{"sub":"1234567890","name":"Ada","admin":true}Um payload de JWT; preenchimento restaurado
c3ViamVjdHM_X2Qsubjects?_d_ é a / URL-safe
8J-Riw👋- é o + URL-safe
E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM32 bytes bináriosUm hash SHA-256, o exemplo de PKCE da RFC 7636

Para o hash da última linha, a saída em texto não faz sentido. Abra em Base64 para hex para ver os bytes como 13 d3 1e 96 ....

Preenchimento e por que ele pode ser restaurado

O Base64URL costuma ser escrito sem =. Isso não perde informação: uma string válida tem comprimento 4n, 4n + 2 ou 4n + 3 caracteres, e o resto diz ao decodificador se o último grupo tem um ou dois bytes. A ferramenta adiciona os = ausentes antes de decodificar e avisa na linha de status.

Um comprimento 4n + 1 nunca pode acontecer. Se você vir o erro “Comprimento incorreto: há um caractere a mais ou a menos”, um caractere se perdeu ou sobrou quando o valor foi copiado, por exemplo em uma quebra de linha de e-mail ou de log. Preenchimento explicado mostra a conta.

Muitos decodificadores padrão são menos tolerantes. O atob() dos navegadores rejeita - e _ com InvalidCharacterError, e o base64.urlsafe_b64decode do Python lança Incorrect padding quando falta =.

Tokens, cookies e parâmetros de URL

  • JWT. Um token tem a forma xxxxx.yyyyy.zzzzz. As duas primeiras partes são JSON em Base64URL; a terceira é a assinatura, que é binária. Decodifique as partes uma de cada vez aqui ou cole o token inteiro no decodificador de JWT, que também mostra a expiração e verifica assinaturas. Base64 em JWT explica o formato.
  • Cookies e IDs de sessão. Alguns cookies de sessão de frameworks, como os do Flask, juntam dados em Base64URL e uma assinatura com pontos. Decodifique só a parte dos dados.
  • Parâmetros de URL. O state do OAuth, destinos de redirecionamento e links de compartilhamento às vezes levam JSON em Base64URL. Se o valor tiver %2F ou %2B, ele recebeu codificação percentual por cima e precisa de decodificação de URL antes.

Se uma string mistura - ou _ com + ou /, o decodificador para com “A entrada mistura caracteres padrão (+ /) e URL-safe (- _)”. Isso geralmente significa que dois valores foram concatenados ou que um foi convertido só em parte.

Decodificar Base64URL no código

// Node.js
Buffer.from("c3ViamVjdHM_X2Q", "base64url").toString("utf8");   // "subjects?_d"

// Browsers with Uint8Array.fromBase64
new TextDecoder().decode(Uint8Array.fromBase64("c3ViamVjdHM_X2Q", { alphabet: "base64url" }));
import base64

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

b64url_decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")   # b'{"alg":"HS256","typ":"JWT"}'

A linha do preenchimento funciona para qualquer comprimento de entrada que seja Base64 válido. Mais em Base64 no Node.js, JavaScript e Python.

Perguntas frequentes

Como decodificar Base64URL?

Cole a string acima; nenhuma configuração é necessária. No código, troque - por + e _ por /, adicione = até o comprimento ser múltiplo de 4 e decodifique como Base64 normal, ou use um decodificador URL-safe como o Buffer.from(s, "base64url") do Node.

Por que aparece um erro sobre o caractere "."?

Você colou um JWT inteiro. As três partes dele são separadas por pontos, e cada parte precisa ser decodificada separadamente. Cole uma parte só ou use o decodificador de JWT para o token completo.

Por que a linha de status diz Standard para minha string Base64URL?

A string não contém nenhum dos caracteres -, _, + ou /, então é válida nos dois alfabetos e decodifica igual em qualquer um. Muitos headers de JWT são assim.

E se o valor ainda estiver com codificação percentual?

Um = codificado (%3D) é tratado. Outros escapes, como %2F, indicam que o valor passou por codificação de URL; passe-o antes pelo decodificador de URL.