Verificador de assinatura JWT (RS256/ES256, verificação com chave pública)
Uma ferramenta para desenvolvedores que verifica JWTs (JSON Web Tokens) assinados com RS256 ou ES256 usando uma chave pública em formato PEM (SPKI), diretamente no seu navegador. Também decodifica o header/payload e verifica a data de expiração. Nada do que você digita é enviado a um servidor; tudo é processado no navegador.
Algoritmos de assinatura suportados
| Algoritmo | Tipo de chave | Função hash | Descrição |
|---|---|---|---|
| RS256 | RSA (RSASSA-PKCS1-v1_5) | SHA-256 | Assinatura com criptografia de chave pública RSA. O algoritmo padrão para tokens de identidade emitidos por grandes provedores de OAuth 2.0/OpenID Connect, como Google, Auth0 e Okta. |
| ES256 | ECDSA (curva P-256) | SHA-256 | Assinatura com criptografia de curva elíptica, que oferece segurança equivalente à RSA com chaves e assinaturas mais curtas — cada vez mais usada em apps móveis e dispositivos IoT. |
Dicas
- A chave pública precisa estar em formato PEM (SPKI, começando com "-----BEGIN PUBLIC KEY-----"). Colar diretamente um arquivo de chave privada ou um certificado (.crt) não funcionará.
- O algoritmo de verificação é escolhido automaticamente com base no campo
algdo header do JWT (RS256 ou ES256) — não é preciso selecionar manualmente. - Junto com a verificação da assinatura, a claim
expdo payload também é verificada, avisando se o token expirou. Uma assinatura válida não significa que o token ainda deva ser aceito. - Esta ferramenta só é compatível com RS256 e ES256. Para conferir um JWT assinado com HS256, use a ferramenta complementar Codificador de JWT para assinar novamente com o mesmo segredo compartilhado e comparar o resultado.
- A chave pública usada na verificação não é secreta, então é seguro colar uma obtida do endpoint público de um provedor de identidade (como um JWKS).
Perguntas frequentes
Curiosidade — HMAC versus assinaturas de chave pública: qual é a diferença?
Os esquemas de assinatura de JWT se dividem em duas grandes famílias: segredo compartilhado (HMAC, ex.: HS256) e chave pública (RSA/ECDSA, ex.: RS256 e ES256). Com um segredo compartilhado, tanto quem assina quanto quem verifica precisam ter a mesma string secreta; com criptografia de chave pública, apenas quem assina possui uma chave privada, enquanto qualquer pessoa pode verificar usando a chave disponível publicamente. Essa distinção molda como as APIs são projetadas. A ferramenta complementar Codificador de JWT (HS256) serve para casos em que o mesmo servidor emite e verifica os tokens, enquanto RS256/ES256 — o foco desta ferramenta — servem para casos em que o emissor e o verificador pertencem a organizações ou servidores completamente diferentes.
Na prática, os tokens de identidade emitidos por grandes provedores de identidade, como Google OAuth 2.0, OpenID Connect, Auth0 e Okta, quase sempre são assinados com RS256 (com ES256 frequentemente disponível como alternativa). Isso permite que o provedor de identidade seja o único a possuir a chave privada, enquanto qualquer número de aplicações cliente verifica os tokens usando apenas a chave pública — eliminando a necessidade de distribuir um segredo para cada cliente e concentrando o risco de vazamento da chave em um único ponto: quem assina.
RS256 e ES256 usam SHA-256 para o hash, mas diferem na criptografia subjacente. RS256 usa RSA (normalmente chaves de 2048 bits ou mais), o que tende a gerar assinaturas maiores, mas se beneficia de bibliotecas maduras e amplamente suportadas. ES256 usa criptografia de curva elíptica (P-256), alcançando segurança comparável com chaves e assinaturas muito mais curtas — uma escolha cada vez mais popular para ambientes móveis e APIs em que o tamanho do payload importa.