Ir para o decodificador Base64

RFC 4648 §5 · base64url

Decodificar Base64URL, com preenchimento e tudo.

Cole Base64 URL-safe — de um JWT, de um parâmetro de URL, de um desafio WebAuthn ou da API do Gmail — e ele é decodificado convertendo - e _ de volta e restaurando o preenchimento = que falta. Cole um JSON Web Token inteiro e o cabeçalho e o payload aparecem em uma tabela.

Atualizado em · Roda inteiramente no seu navegador

Conversor de Decodificar Base64URL

0 caracteres
Resultado decodificado
Tipo: — Tamanho: 0 B
Opções
Geral
Opções de decodificação

Ctrl+Enter decodificar Ctrl+Shift+C copiar resultado Solte um arquivo na entrada para carregá-lo

Como decodificar Base64URL

  1. 01

    Cole o valor base64url

    Cole uma string Base64 URL-safe ou um JWT completo. Os caracteres - e _ e o preenchimento que falta são tratados automaticamente.

  2. 02

    Leia o resultado decodificado

    Valores simples são decodificados em texto ou bytes. Um JWT é separado em cabeçalho e payload, com iat, nbf e exp mostrados como datas.

  3. 03

    Copie ou continue decodificando

    Copie o JSON, formate-o ou clique em Enviar para a entrada se o payload tiver outro valor codificado.

Base64 vs. Base64URL

O Base64 padrão usa + e /, que têm significado em URLs e nomes de arquivos, e completa com =, que precisa ser codificado com porcentagem numa query string. O Base64URL, definido na seção 5 da RFC 4648, troca só esses caracteres para que o valor viaje numa URL sem alterações:

Diferenças entre o Base64 padrão e o Base64URL
Base64Base64URL
Valor 62+-
Valor 63/_
Preenchimento= obrigatóriogeralmente omitido
Definido emRFC 4648 §4RFC 4648 §5

Os outros 62 caracteres são idênticos, então a conversão é uma simples troca de caracteres mais o preenchimento.

Como restaurar o preenchimento que falta

Muitos decodificadores estritos rejeitam entradas sem preenchimento. A regra para recolocá-lo depende só do tamanho da string módulo 4:

  • resto 0 — não precisa de preenchimento;
  • resto 2 — adicione ==;
  • resto 3 — adicione =;
  • resto 1 — impossível em Base64 válido: o valor está truncado.

Este decodificador aplica a regra para você e avisa quando o valor está truncado, em vez de devolver lixo em silêncio.

Onde você encontra base64url

  • JSON Web Tokens — o cabeçalho, o payload e a assinatura são três segmentos base64url unidos por pontos. A assinatura é exibida, mas não verificada, porque isso exige a chave.
  • WebAuthn e passkeys — desafios, IDs de credencial e dados do cliente.
  • OAuth PKCE — o code_challenge é um digest SHA-256 em base64url.
  • API do Gmail — corpos de mensagens e anexos são codificados em base64url.
  • IDs curtos e tokens em URLs, cookies e nomes de arquivos.

Decodificar base64url no código

# Python: urlsafe_b64decode still needs the padding back
import base64
def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

// Node.js 16+
Buffer.from(token, "base64url").toString("utf8");

// Go
base64.RawURLEncoding.DecodeString(s)

// Java 8+: the URL decoder accepts unpadded input
Base64.getUrlDecoder().decode(s);

Para Base64 padrão e mais linguagens, veja a página principal para decodificar Base64.

Mais decodificadores

Outras formas de decodificar Base64.

Perguntas

Decodificar Base64URL: perguntas frequentes.

Como decodifico Base64URL?

Troque - por + e _ por /, adicione preenchimento = até o tamanho ser múltiplo de quatro e decodifique como Base64 normal. Esta página faz as três coisas automaticamente: cole o valor e o resultado aparece na hora.

Base64URL é a mesma coisa que codificação de URL?

Não. A codificação de URL (codificação por porcentagem) escapa caracteres individuais como %XX. O Base64URL é uma variante do Base64 que converte bytes para um alfabeto seguro para URLs. Se um valor contém %2B ou %3D, é Base64 codificado por porcentagem — decodifique a porcentagem primeiro.

Posso decodificar um JWT com esta ferramenta?

Sim. Cole o token inteiro e o cabeçalho e o payload são decodificados de base64url e mostrados em uma tabela, com os timestamps convertidos em datas. A assinatura é exibida, mas não verificada, porque isso exige a chave secreta ou pública.

Por que o Python dá “Incorrect padding” com base64url?

base64.urlsafe_b64decode espera o preenchimento = que o base64url geralmente omite. Adicione "=" * (-len(s) % 4) à string antes de decodificar, como no exemplo desta página.