Ir para o conteúdo principal
Bethemesh

Codificador JWT

Gere um JSON Web Token assinado com HMAC para os seus testes: introduza o cabeçalho e o payload em JSON, escolha HS256, HS384 ou HS512 e o seu segredo; alg e typ são preenchidos automaticamente.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Algoritmo

Para testes e desenvolvimento: não utilize um segredo de produção num dispositivo partilhado ou não fiável.

Esta ferramenta foi útil?

Como funciona esta ferramenta?

O codificador JWT cria um token assinado com HMAC a partir de um cabeçalho, de um payload JSON e de um segredo partilhado. Destina-se a programadores e testers que precisam de um token à medida para chamar uma API local, escrever um teste automatizado ou reproduzir um caso limite (token expirado, perfil em falta). Foi concebido para desenvolvimento e testes, não para emitir tokens de produção.

A ferramenta verifica se o cabeçalho e o payload são objetos JSON válidos e depois define no cabeçalho alg com o algoritmo escolhido e typ com JWT. Cada objeto é serializado e codificado em Base64URL (RFC 4648, sem preenchimento =), e os dois segmentos são unidos por um ponto. Por exemplo, o cabeçalho {"alg":"HS256","typ":"JWT"} passa a eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

A assinatura é um HMAC calculado sobre a cadeia «cabeçalho.payload» com SHA-256, SHA-384 ou SHA-512 consoante o algoritmo (RFC 7518, secção 3.2), através da Web Crypto API. O resultado, codificado em Base64URL, forma o terceiro segmento do JWT (RFC 7519). A RFC 7518 exige uma chave pelo menos tão longa como a saída do hash: 256 bits (32 bytes) para HS256, 384 bits para HS384 e 512 bits para HS512. As datas exp, iat e nbf do payload devem ser indicadas em segundos Unix, por exemplo "exp": 1767225600 para 1 de janeiro de 2026 às 00:00 UTC.

Como usar esta ferramenta

  1. Escreva o cabeçalho e o payload

    Edite as duas áreas JSON pré-preenchidas ou importe um ficheiro .json. Acrescente os seus claims: sub, iss, aud, exp, perfis ou campos personalizados.

  2. Escolha o algoritmo e o segredo

    Selecione HS256, HS384 ou HS512 e introduza o segredo partilhado. Os campos alg e typ do cabeçalho são atualizados automaticamente.

  3. Gere e copie o JWT

    Clique em Gerar: o token assinado é apresentado e pode ser copiado. Surge um erro se o JSON for inválido ou se o segredo estiver vazio.

Assinatura JWT HMAC

Assinatura JWT HMAC

JWT = Base64URL(cabeçalho) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(segredo, entrada assinada))

Casos de uso

Testar uma API protegida localmente

Crie um token assinado com o segredo do seu ambiente de desenvolvimento para chamar uma rota protegida com curl ou Postman, sem passar por todo o fluxo de início de sessão.

Reproduzir um token expirado ou sem perfil

Coloque exp no passado ou retire um claim roles para confirmar que o seu middleware devolve de facto um erro 401 ou 403 nesses casos limite.

Preparar fixtures de teste

Gere tokens estáveis para os seus testes de integração e verifique-os depois com o verificador JWT para garantir que o segredo e os claims correspondem ao que o servidor espera.

Exemplos

JWT assinado com HS256

Entrada

Algoritmo: HS256; Cabeçalho JSON: {"alg":"HS256","typ":"JWT"}; Carga útil JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Segredo: chave-de-teste

Resultado

JWT assinado: três segmentos Base64URL separados por pontos; a assinatura usa HMAC-SHA256.

Dicas e boas práticas

  • Use um segredo de pelo menos 32 bytes aleatórios para HS256: uma palavra curta como «secret» torna o token quebrável por força bruta offline.
  • Escreva exp e iat em segundos e não em milissegundos: Date.now() em JavaScript devolve milissegundos e produz uma data por volta do ano 58 000.
  • Não coloque dados confidenciais no payload: está apenas codificado em Base64URL e pode ser lido por qualquer pessoa que tenha o token.

Fontes e referências

Perguntas frequentes

Como se cria um JWT?

Um JWT constrói-se codificando em Base64URL um cabeçalho JSON e um payload JSON e assinando depois a cadeia «cabeçalho.payload» com o algoritmo escolhido. Aqui basta introduzir os dois objetos e um segredo e clicar em Gerar. Em produção, esta etapa é feita pelo seu servidor de autenticação ou por uma biblioteca como jose ou jsonwebtoken.

Que comprimento deve ter um segredo HS256?

A RFC 7518 exige uma chave de pelo menos 256 bits, ou seja, 32 bytes, para HS256; 48 bytes para HS384 e 64 bytes para HS512. Um segredo aleatório com esse tamanho, por exemplo criado com um gerador de tokens seguros, impede ataques de dicionário à assinatura.

Porquê apenas HS256, HS384 e HS512?

Estes algoritmos HMAC precisam apenas de um segredo partilhado, o que basta para criar tokens de teste. RS256 ou ES256 exigiriam uma chave privada, que não deve ser manipulada numa ferramenta web. Se várias partes tiverem de verificar os seus tokens sem os poderem emitir, utilize um algoritmo assimétrico no servidor.

Como acrescentar uma data de expiração a um JWT?

Acrescente ao payload o claim exp com um carimbo temporal Unix em segundos, por exemplo "exp": 1767225600. Um conversor de timestamp ajuda a calcular esse valor a partir de uma data. Considere também iat para indicar a data de emissão.

Posso usar estes tokens em produção?

Não, a ferramenta foi concebida para desenvolvimento e testes. Em produção, os tokens devem ser emitidos por um servidor que mantenha o segredo fora do alcance dos utilizadores, imponha durações curtas e faça a rotação das chaves.

O meu segredo é enviado para algum lado?

Não. A codificação e a assinatura HMAC são calculadas no seu navegador com a Web Crypto API, sem qualquer pedido de rede. Evite, ainda assim, introduzir um segredo de produção, porque quem o conhecer pode assinar tokens que a sua API aceitará.

Fluxo de trabalho recomendado

Descubra ferramentas que se integram naturalmente antes, depois ou em conjunto com esta.

Funciona bem com

Descodifique um JWT para ler o cabeçalho, o payload, os claims e as datas de expiração.

Segurança e privacidadeEm destaqueUtilizar esta ferramenta

Próximo passo

Verifique a assinatura de um JWT com um segredo HMAC ou uma chave pública JWK, JWKS ou PEM e controle exp, nbf, iss e aud.

Segurança e privacidadeUtilizar esta ferramenta