DevToolPal
PT

Gerador e assinador de JWT

Crie e assine um JSON Web Token a partir de um payload JSON com HS256/384/512, ou com RS, PS e ES usando uma chave privada PEM.

Roda localmente, nada é enviado

Opções

Formato do segredo

Payload (JSON)

0 caracteres · 0 B

JWT

0 caracteres · 0 B

O que faz

Um JSON Web Token (JWT, RFC 7519) é uma string compacta e segura para URL com três partes separadas por pontos: um cabeçalho que indica o algoritmo de assinatura, um payload com as claims e uma assinatura sobre as duas primeiras. APIs usam JWTs como tokens bearer, e provedores de identidade como ID tokens.

Esta ferramenta cria e assina um token a partir de um payload JSON. Suporta:

  • HS256, HS384, HS512: HMAC com segredo compartilhado, em texto ou Base64.
  • RS256, RS384, RS512 e PS256, PS384, PS512: assinaturas RSA com chave privada PEM.
  • ES256, ES384, ES512: assinaturas ECDSA com chave privada EC.

Como usar

  1. Escreva o payload como um objeto JSON ou clique em Exemplo.
  2. Escolha o Algoritmo e digite o segredo ou cole a chave privada PEM no topo da caixa de entrada.
  3. Se quiser, defina iat como agora, adicione uma expiração (exp) ou campos extras de cabeçalho, como um ID de chave.
  4. Copie o token da saída. Cole-o no decodificador de JWT para inspecioná-lo.

Exemplo

Com o segredo your-256-bit-secret, o payload abaixo assinado com HS256 gera o conhecido token de exemplo do jwt.io:

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

O cabeçalho é sempre escrito como {"alg":"HS256","typ":"JWT"} seguido dos campos extras que você adicionar; alg sempre segue o algoritmo escolhido.

Boas práticas

Mantenha os tokens de curta duração com uma claim exp e defina iss e aud para que um token de um serviço não possa ser reaproveitado em outro. No servidor, sempre verifique a assinatura com uma lista explícita de algoritmos permitidos e rejeite none. Segredos HMAC devem ser longos e aleatórios, pelo menos do tamanho da saída do hash (32 bytes para HS256).

Perguntas frequentes

› Qual algoritmo devo escolher?

O que o seu servidor verifica. HS256 usa um segredo compartilhado e é comum dentro de um único sistema. RS256 e ES256 assinam com uma chave privada e qualquer um pode verificar com a pública, o que serve para tokens checados por vários serviços. ES256 gera assinaturas bem mais curtas que RS256.

› Quais formatos de chave privada são aceitos?

Chaves PEM em PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 RSA (BEGIN RSA PRIVATE KEY) e SEC1 EC (BEGIN EC PRIVATE KEY). Chaves criptografadas precisam ser exportadas antes sem frase-senha. Para ES256, ES384 e ES512 a chave deve estar na curva P-256, P-384 ou P-521, respectivamente.

› O payload de um JWT é secreto?

Não. O cabeçalho e o payload só estão codificados em Base64URL, e qualquer pessoa com o token pode lê-los. A assinatura impede alterações, não a leitura. Nunca coloque senhas ou outros segredos no payload de um JWT.

› Meu segredo ou chave privada é salvo ou enviado?

Não. A assinatura roda no seu navegador com a Web Crypto API. O segredo ou a chave fica apenas na memória desta página: não é salvo, não vai para a barra de endereços nem para os links de compartilhamento. Mesmo assim, evite colar chaves de produção em páginas que você não controla.