/ segurança / jwt
Membro
Tema: SistemaContraste: Padrão

Decodificador e verificador de JWT

Fixar nas suas ferramentas

Decodifique um JSON Web Token, confira a expiração e os claims e verifique a assinatura com um segredo ou chave pública.

Roda inteiramente no seu navegador. O que você digita nunca é enviado aos nossos servidores.

Payload
token · 0 linha
ColarAbrir arquivoCtrl OLimpar

Payload

Exibição
payload · 0 linha
BaixarCopiarCtrl Shift C

Um segredo para HS256/384/512, uma chave pública em PEM (SPKI ou certificado) para as demais, ou um JWK ou JWKS (a chave é escolhida pelo kid do token). A chave nunca é compartilhada nem salva.

localtestado · v0.15.0 · 37 casos de teste

histórico · 0

As entradas processadas aparecem aqui enquanto esta página estiver aberta. Recarregar a página limpa a lista.

Exemplos de código

Copie estes exemplos para o seu próprio projeto. Cada um usa apenas a biblioteca padrão da linguagem, por isso não há nada para instalar.

Exemplo

Marque até 3 linguagens com uma estrela para as ver primeiro em todas as páginas de ferramentas.

Marcar JavaScript como favorita
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')

console.log(JSON.stringify(JSON.parse(json), null, 2))

O que faz

Decodifique um JSON Web Token para ler o cabeçalho e o payload, veja se ele expirou e verifique a assinatura com um segredo ou uma chave pública. O token é decodificado no seu navegador, esta página não mostra anúncios e o token e a chave nunca são compartilhados nem salvos.

Como usar

  1. Cole o token. Um prefixo Bearer e quebras de linha são ignorados.
  2. Leia o payload como JSON formatado ou compacto. Abaixo dele você vê o algoritmo, o status e os horários exp, nbf e iat junto de quanto faltam ou passaram em relação a agora.
  3. Para verificar a assinatura, informe a chave: um segredo para HS256, HS384 e HS512, ou uma chave pública (PEM ou JWK) para RS, PS, ES e EdDSA.
  4. Alterne o cabeçalho e o payload entre JSON e Claims: Claims lista cada claim com o seu significado e mostra os claims de tempo como datas.
  5. Abra a aba Codificar para escrever um cabeçalho e um payload e assiná-los com um segredo ou uma chave privada (PEM PKCS#8 ou JWK). Nada dessa aba é salvo, compartilhado ou adicionado ao histórico.

Exemplos

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

O payload desse token:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

A assinatura dele é verificada com o segredo your-256-bit-secret.

Bom saber

  • Decodificar não é verificar: o payload é apenas codificado, não criptografado, e qualquer pessoa pode lê-lo.
  • Seu servidor deve verificar a assinatura antes de confiar em qualquer claim.
  • Um token com o algoritmo none não é assinado, então qualquer pessoa poderia tê-lo criado.
  • Trate tokens em uso como senhas. Prefira tokens expirados ou de teste ao colar um aqui.
  • Um JWKS colado é pesquisado pelo kid do token, e um JWK único é usado como está. A página nunca busca um conjunto de chaves no emissor do token.
  • Um segredo HMAC mais curto que o seu hash (32, 48 ou 64 bytes) pode ser adivinhado, por isso a página avisa. Um segredo pode ser lido como texto UTF-8 ou como Base64URL.

O que é um JWT?

Um JSON Web Token são três partes Base64URL unidas por pontos: um cabeçalho com o algoritmo de assinatura, um payload com claims (para quem é o token, quando expira) e uma assinatura. Qualquer pessoa pode ler as duas primeiras partes; só a assinatura prova que o token veio de quem tem a chave.

Perguntas frequentes

Decodificar um token é o mesmo que verificá-lo?

Não. Decodificar apenas lê o conteúdo, que não é criptografado. Verificar confere a assinatura com a chave, e o seu servidor deve fazer isso antes de confiar em qualquer claim.

O que significam exp, nbf e iat?

exp é quando o token expira, nbf o momento antes do qual não é válido e iat quando foi emitido, tudo em segundos desde 1970. Esta ferramenta os compara com o relógio do seu dispositivo.

É seguro colar um token real aqui?

O token é decodificado no seu navegador e nunca enviado aos nossos servidores, e esta página não mostra anúncios. Ainda assim, trate tokens ativos como senhas: prefira tokens expirados ou de teste.

Alterações desta ferramenta

Atalhos de teclado

Fechar

Em todo o lado

Pesquisar ferramentas e ações
Ctrl K
Mostrar esta ajuda
?
Mudar de tema
Ctrl Shift L
Fixar a ferramenta selecionada (na pesquisa)
Ctrl P

Numa ferramenta

Enviar o resultado para a primeira sugestão
Ctrl ↵
Abrir um ficheiro na entrada
Ctrl O
Copiar o resultado
Ctrl Shift C
Fechar buscaesc
ferramentasCodificador e decodificador de Base64Codifique texto em Base64 ou decodifique Base64 de volta para texto, com alfabetos padrão e seguro para URL.CodificaçãoFormatador e validador de JSONFormate, minifique e valide JSON, com a linha e a coluna exatas de qualquer erro.FormataçãoTestador de regexTeste expressões regulares JavaScript com destaque em tempo real, grupos de captura e uma explicação em linguagem simples.TextoGerador de UUID e ULIDGere UUID v4, UUID v7 e ULID em massa, ou cole um identificador para ver a versão, a variante e o carimbo de data/hora.GeradoresConversor de timestamp UnixConverta timestamps Unix em datas e vice-versa, em qualquer fuso horário, com ISO 8601, RFC 2822 e tempo relativo.Data e horaGerador de hash e HMACCalcule hashes MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3 e CRC-32 de um texto ou arquivo, com HMAC opcional.SegurançaGerador de senhas e verificador de forçaGere senhas, frases-senha e PINs aleatórios, ou verifique a força de uma senha.SegurançaDecodificador e verificador de JWTDecodifique um JSON Web Token, confira a expiração e os claims e verifique a assinatura com um segredo ou chave pública.SegurançaCalculadora CIDR e de sub-redes IPCalcule o intervalo, a máscara e o tamanho de redes IPv4 e IPv6, divida-as em sub-redes e verifique o que contém ou se sobrepõe a quê.RedeExplicador de expressões cronLeia uma expressão cron em linguagem natural, veja as próximas execuções em qualquer fuso horário e deixe-a na forma padrão.Data e horaOrdenar linhasOrdene linhas de texto de A a Z ou de Z a A, em ordem natural (file2 antes de file10), por ponto de código, por número ou por comprimento.TextoRemover linhas duplicadasRemova linhas duplicadas de uma lista, mantenha a primeira ou a última cópia, ignore maiúsculas ou espaços, ou tire toda linha repetida.TextoComparar listas e textoCompare duas listas linha a linha: encontre o que está em ambas, só em uma ou em qualquer uma, ou veja um diff de linhas marcado lado a lado.TextoConverter maiúsculas e criar slugConverta texto para camelCase, snake_case, kebab-case, Title Case e mais, ou transforme um título em slug de URL com tratamento de acentos.TextoCodificar, decodificar e analisar URLCodifique e decodifique texto com porcentagem para URLs, ou decomponha uma URL em esquema, host, caminho e consulta e edite a consulta como tabela.CodificaçãoValidadores: IBAN, BSN, IVA, cartão, ISBNVerifique um IBAN, BSN neerlandês, número de cartão, número de IVA da UE, e-mail, URL ou ISBN, com o motivo se falhar. Um valor por linha.ValidaçãoCodificar e decodificar entidades HTMLEscape texto para HTML com entidades nomeadas, decimais ou hexadecimais, ou converta entidades como & e é de volta em caracteres.CodificaçãoEscapar e desescapar stringsEscape texto para uma string JSON ou JavaScript, uma string SQL, um campo CSV, uma expressão regular ou uma palavra de shell, ou desfaça o escape.CodificaçãoDígitos de controlo EAN, UPC e GTINVerifique o dígito de controlo de um EAN-8, EAN-13, UPC-A ou GTIN-14, acrescente o que falta, leia o país do prefixo GS1 e converta entre ISBN-10 e EAN-13. Um código por linha.ValidaçãoGerador de dados de testeGere em massa IBAN, BSN, códigos EAN e números de IVA europeus de teste. Passam nas verificações, mas não pertencem a ninguém.GeradoresFormatador e minificador de SQLFormate SQL com cada cláusula em sua linha, ou minifique em uma só linha, para MySQL, PostgreSQL, SQLite, SQL Server e BigQuery.FormataçãoConversor de base numéricaConverta números entre binário, octal, decimal, hexadecimal e qualquer base de 2 a 36, com números grandes, complemento de dois e vista de bits.CodificaçãoConversor de YAML, TOML e JSONConverta entre JSON, YAML e TOML, ou valide e formate um documento, com a linha e a coluna de cada erro.FormataçãoConversor de CSV e JSONConverte CSV num array JSON de objetos ou arrays, ou JSON de volta para CSV. Deteta o separador e lê ficheiros Excel com ponto e vírgula e vírgula decimal.DadosTestador de glob e .gitignoreTeste padrões glob e regras .gitignore numa lista de caminhos e veja quais caminhos correspondem e que regra o fez.TextoConversor de coresConverta uma cor entre HEX, RGB, HSL, HWB e OKLCH, verifique o contraste WCAG com um fundo ou crie uma paleta tonal Material 3 a partir dela.FormataçãoCalculadora chmodConverta permissões de arquivos Unix entre octal (755), letras (rwxr-xr-x), ls -l e cláusulas chmod, com uma grade de caixas de seleção e os bits setuid, setgid e sticky.SegurançaAnalisador de user-agentLeia uma string user-agent: navegador, motor, sistema, tipo de dispositivo e se é um bot. Deixe vazio para ler o seu próprio navegador.RedeConverter cURL em códigoCole um comando cURL e receba a mesma requisição em fetch, Axios, Python requests, Go ou PHP. Nada é executado e nada é enviado.RedePré-visualização de MarkdownEscreva Markdown e veja-o renderizado enquanto digita, ou copie o HTML. O HTML bruto é mostrado como texto e os links são verificados, por isso nada na pré-visualização pode ser executado.FormataçãoGerador de códigos de barras e QRCrie um QR code, EAN-13, UPC-A, Code 128, ITF-14 ou Data Matrix, baixe como SVG ou PNG, ou leia um código de uma imagem.GeradorespáginasNovidadesO que mudou em cada versãopáginasSobreO que é o codeknife.dev e quem o fazpáginasIdeiasSugira melhorias e vote nas ideias de outros visitantes.páginasPrivacidadeO que sai do navegador e o que é guardadopáginasAcessibilidadeConformidade, limitações conhecidas e como reportar um problemapáginasAssinaturaRemova os anúncios e aumente os limitespáginasações