Decodificar JWT

Lê um token, confere a assinatura ou assina um token de teste no navegador. HMAC, RSA e ECDSA. O token não é enviado. Um endereço JWKS só é lido quando você pede.

Token

Cabeçalho Carga Assinatura

Endereço JWKS

Conferir com JWKS lê esse endereço neste navegador e só baixa chaves. O token fica na página. O endereço precisa aceitar o pedido do navegador.

Revisão

    Assinatura

    Ler um token, conferir ou assinar um teste

    Um JWT tem três partes em Base64url: cabeçalho, carga e assinatura. O cabeçalho e a carga são JSON, sem cifra. Quem tem o token lê os dois. A assinatura mostra que a carga não foi alterada, se você tem o segredo HMAC ou a chave pública. Esta página lê, confere e gera no navegador. Ela marca alg none, um exp ausente ou já vencido, um tempo em milissegundos e um segredo HMAC com menos de 32 bytes. O token não é enviado. Uma soma na página de hash não é assinatura JWT. exp é tempo Unix em segundos; outros fusos estão em timestamp Unix.

    Como usar

    1. O token fica à esquerda. À direita, Cabeçalho e Carga são duas abas. Com Atualizar ao digitar, as duas caixas se preenchem. As horas sob a carga são a hora local deste computador. Não há folga: se exp é agora ou antes, está expirado.
    2. Mostrar exemplo coloca um token HS256 cuja carga é {"sub":"user-1"} e o segredo HMAC secret. O segredo está em Base64 fica desmarcado. Conferir diz que a assinatura confere. Revisão diz que o segredo tem 6 bytes e que não há exp. O exemplo é curto de propósito.
    3. Conferir olha a caixa do token, não edições ainda não geradas no Cabeçalho ou na Carga. HS256, HS384 e HS512 usam o segredo HMAC. RS, PS e ES usam o par sob Algoritmo: a chave pública confere e a privada assina. Gerar chave preenche as duas. Gerar monta um token novo a partir dessas duas caixas. O menu Algoritmo vale mais que o alg escrito no cabeçalho.
    4. Expiração começa em Manter os campos, então Gerar não mexe em iat nem em exp. Escolha 1 hora e Gerar escreve os dois em segundos a partir de agora. O modelo Usuário preenche sub 1234567890, name John Doe e email [email protected]. Acesso preenche sub user-1 e scope read.
    5. Copiar sob o token copia o token. Copiar no Cabeçalho ou na Carga copia essa caixa. Conferir com JWKS lê o endereço JWKS neste navegador e só baixa chaves. O token não é enviado. Limpar tudo esvazia o token, os dois JSON, o segredo, a chave e o endereço.

    O que é conferido

    HS256, HS384 e HS512 usam o segredo. Com menos de 32 bytes ainda assina, e Revisão avisa. Marque O segredo está em Base64 só se o segredo for Base64. RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 e ES512 usam um PEM ou um JWK. Uma chave pública confere. Uma chave privada PKCS#8 gera. Uma chave privada RSA também confere, porque a metade pública está nela. Dá para colar SPKI (BEGIN PUBLIC KEY), PKCS#8 (BEGIN PRIVATE KEY) ou RSA PKCS#1. Um certificado é recusado. Uma chave EC BEGIN EC PRIVATE KEY também; exporte como PKCS#8. alg none nunca vale como válido. Conferir segue o alg do cabeçalho. O segredo HMAC não serve para conferir RSA. exp, nbf e iat são segundos. Um valor de 13 dígitos é marcado, não convertido. Um JWKS é um conjunto de chaves, ou um JWK só. Várias chaves sem kid é erro. Um array no Cabeçalho ou na Carga impede Gerar.

    Quando usar

    • Ler sub e exp de um token que você já tem.
    • Assinar um HS256 local para um servidor cujo segredo você definiu.
    • Conferir um RS256 com o PEM público, ou com um endereço JWKS que aceite o navegador.
    • Ver que um segredo de teste é curto antes de copiá-lo para uma config.

    Perguntas

    A carga é cifrada?

    Não. É Base64url. Não coloque senha, documento ou cartão.

    Por que Conferir falha?

    O token precisa de dois pontos e duas partes JSON. O alg do cabeçalho tem de ser um que esta página conhece. HS precisa do mesmo segredo usado na assinatura, e O segredo está em Base64 tem de bater com o modo como ele está guardado. RSA e EC querem a chave pública, não um certificado. Um exp passado é aviso na Revisão, não uma assinatura que não confere.

    HS256 ou RS256?

    HS256 é um segredo compartilhado. RS256 assina com a chave privada e se confere com a pública. Não entregue o segredo HMAC a outro serviço. Entregue a chave pública.

    O que é alg none?

    O cabeçalho diz que não há assinatura. Esta página não trata esse token como válido.

    Esta página cancela um token vazado?

    Não. Encurte o exp no servidor que emite os tokens, ou mantenha lá uma lista de revogação.

    Dá para colar um token aqui?

    A conferência fica no navegador. Conferir com JWKS é o único pedido, e baixa chaves, não o seu token. Mesmo assim, não cole um token de produção ainda válido num computador compartilhado. Se a hora parecer horas adiantada ou atrasada, o número é UTC e a linha sob a carga é o relógio deste computador.