Décodeur JWT

Lit un jeton, vérifie la signature, ou signe un jeton d’essai dans le navigateur. HMAC, RSA et ECDSA. Le jeton n’est pas envoyé. Une adresse JWKS n’est lue que si vous le demandez.

Jeton

En-tête Charge Signature

Adresse JWKS

Vérifier avec un JWKS lit cette adresse dans ce navigateur et ne télécharge que les clés. Le jeton reste sur la page. L’adresse doit accepter une requête de navigateur.

Contrôle

    Signature

    Lire un jeton, le vérifier, ou signer un essai

    Un JWT a trois parties en Base64url : en-tête, charge, signature. L’en-tête et la charge sont du JSON, pas un chiffrement. Qui a le jeton peut les lire. La signature montre que la charge n’a pas été modifiée, si vous avez le secret HMAC ou la clé publique. Cette page lit, vérifie et génère dans le navigateur. Elle signale alg à none, un exp absent ou déjà échu, une date en millisecondes, et un secret HMAC de moins de 32 octets. Le jeton n’est pas envoyé. Une somme sur la page hash n’est pas une signature JWT. exp est un temps Unix en secondes ; les autres fuseaux sont sur l’horodatage Unix.

    Comment s’en servir

    1. Le jeton est à gauche. À droite, l’en-tête et la charge sont deux onglets. Avec Mettre à jour en tapant, les deux zones se remplissent. Les heures sous la charge sont l’heure locale de cet ordinateur. Pas de marge : si exp est maintenant ou avant, il est expiré.
    2. Afficher un exemple pose un jeton HS256 dont la charge est {"sub":"user-1"} et le secret HMAC secret. Le secret est en Base64 reste décoché. Vérifier dit que la signature correspond. Contrôle dit que le secret fait 6 octets et qu’il n’y a pas d’exp. L’exemple est court exprès.
    3. Vérifier lit la zone du jeton, pas les modifications non générées dans l’en-tête ou la charge. HS256, HS384 et HS512 utilisent le secret HMAC. RS, PS et ES utilisent la paire sous Algorithme : la clé publique vérifie, la clé privée signe. Générer la clé remplit les deux. Générer reconstruit un jeton depuis ces deux zones. Le menu Algorithme l’emporte sur l’alg écrit dans l’en-tête.
    4. Expiration commence sur Garder les champs, donc Générer ne touche pas à iat ni exp. Choisissez 1 heure, et Générer écrit les deux en secondes à partir de maintenant. Le modèle Utilisateur remplit sub 1234567890, name John Doe et email [email protected]. Accès remplit sub user-1 et scope read.
    5. Copier sous le jeton copie le jeton. Copier sur l’en-tête ou la charge copie cette zone. Vérifier avec un JWKS lit l’adresse JWKS dans ce navigateur et ne télécharge que les clés. Le jeton n’est pas envoyé. Tout effacer vide le jeton, les deux JSON, le secret, la clé et l’adresse.

    Ce qui est contrôlé

    HS256, HS384 et HS512 utilisent le secret. Moins de 32 octets signe quand même, et Contrôle prévient. Cochez Le secret est en Base64 seulement si le secret est du Base64. RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 et ES512 utilisent un PEM ou un JWK. Une clé publique vérifie. Une clé privée PKCS#8 génère. Une clé privée RSA peut aussi vérifier, parce que la moitié publique est dedans. Vous pouvez coller du SPKI (BEGIN PUBLIC KEY), du PKCS#8 (BEGIN PRIVATE KEY) ou du RSA PKCS#1. Un certificat est refusé. Une clé EC BEGIN EC PRIVATE KEY aussi ; exportez du PKCS#8. alg none n’est jamais tenu pour valable. Vérifier suit l’alg de l’en-tête. Le secret HMAC ne sert pas à vérifier du RSA. exp, nbf et iat sont des secondes. Une valeur à 13 chiffres est signalée, pas convertie. Un JWKS est un jeu de clés, ou un seul JWK. Plusieurs clés sans kid, c’est une erreur. Un tableau dans l’en-tête ou la charge bloque Générer.

    Dans quels cas

    • Lire sub et exp d’un jeton que vous avez déjà.
    • Signer un HS256 local pour un serveur dont vous avez choisi le secret.
    • Vérifier un RS256 avec le PEM public, ou une adresse JWKS qui accepte les navigateurs.
    • Voir qu’un secret d’essai est court avant de le copier dans une config.

    Questions

    La charge est-elle chiffrée ?

    Non. C’est du Base64url. N’y mettez pas un mot de passe, un numéro d’identité ou une carte.

    Pourquoi Vérifier échoue ?

    Le jeton doit avoir deux points et deux parties JSON. L’alg de l’en-tête doit être connu de cette page. HS exige le même secret que lors de la signature, et la case Le secret est en Base64 doit coller à la façon dont il est stocké. RSA et EC veulent la clé publique, pas un certificat. Un exp passé est un avertissement dans Contrôle, pas une signature fausse.

    HS256 ou RS256 ?

    HS256 est un secret partagé. RS256 signe avec la clé privée et se vérifie avec la clé publique. Ne donnez pas le secret HMAC à un autre service. Donnez la clé publique.

    C’est quoi, alg none ?

    L’en-tête dit qu’il n’y a pas de signature. Cette page ne dira pas que le jeton est valable.

    Cette page peut-elle révoquer un jeton qui a fuité ?

    Non. Raccourcissez exp sur le serveur qui émet les jetons, ou gardez-y une liste de révocation.

    Coller un jeton ici est-il sûr ?

    La vérification reste dans le navigateur. Vérifier avec un JWKS est la seule requête, et elle télécharge des clés, pas votre jeton. Ne collez quand même pas un jeton de production encore valable sur un ordinateur partagé. Si l’heure semble décalée de plusieurs heures, le nombre est en UTC et la ligne sous la charge est l’horloge de cet ordinateur.