Décodeur et vérificateur de JSON Web Token
Trois segments base64url, une signature qui est réelle ou ne l’est pas, et une fenêtre de validité qui inclut maintenant ou pas. Cet outil répond aux trois, hors ligne, et donne la raison exacte quand la réponse est non.
La clé est utilisée par la crypto de votre navigateur dans cet onglet et n’est envoyée nulle part.
Comment ça marche
Collez le jeton
Collez-le, ou déposez un fichier — même une ligne de log : le jeton en est extrait. Il est découpé, décodé et contrôlé aussitôt.
Ajoutez la clé
Un secret partagé en texte, base64 ou hex, une clé publique PEM, un JWK, ou un JWKS entier : l’entrée correspondant au kid du jeton est choisie pour vous.
Vérifiez
Appuyez : la crypto du navigateur fait le calcul. Vous obtenez valide, invalide, ou la raison précise pour laquelle la clé n’a pas pu servir — jamais un haussement d’épaules.
Allez plus loin
Contrôlez les revendications face aux attentes de votre service, signez un nouveau jeton dans le générateur, ou passez la charge utile à un autre outil de la suite.
Des signatures réellement vérifiées
HS256/384/512, RS, PS et ES — ES512 sur P-521 compris — vérifiés par la Web Crypto du navigateur. Pas de serveur, pas de bibliothèque, aucun envoi.
Des revendications jugées, pas seulement affichées
exp, nbf et iat face au décalage d’horloge que vous fixez, plus l’émetteur, l’audience et le sujet attendus par votre service. Chaque contrôle passe, échoue ou est ignoré, et le dit.
Une durée de vie visible
Le compte à rebours ne tourne que s’il y a une échéance, et la barre montre où se situe maintenant entre nbf et exp.
Signez des jetons, ne les lisez pas seulement
Modifiez l’en-tête et la charge utile, choisissez un algorithme, signez. Le résultat se rouvre dans l’inspecteur pour vérifier ce que vous venez de produire.
Tous les formats de clé
Secret en texte, base64 ou hex ; clés publiques PEM ; un JWK ; ou un JWKS entier, dont l’entrée correspondant au kid est choisie automatiquement.
Des attaques nommées
alg : none, une signature vide, une charge utile en JSON légal mais pas un objet, du base64 rescapé d’une URL : chaque cas est signalé pour ce qu’il est.
Rien n’est envoyé
Le jeton et la clé servent à la crypto de cet onglet et disparaissent à sa fermeture. Il n’existe aucun serveur à qui les transmettre.
Passe la main au reste de la suite
Envoyez les revendications directement à JSONFlow, DiffSnap, Base64Bolt ou Hash Bolt, sans téléchargement ni renvoi.
Un décodeur capable de dire non
Collez un jeton pour le lire, ajoutez la clé pour le prouver. Vérification réelle de la signature avec la crypto du navigateur, contrôle des revendications face à ce que votre service attend, et un générateur qui resigne des jetons.
La crypto était déjà dans le navigateur
Web Crypto est une implémentation complète de HMAC, RSASSA-PKCS1-v1_5, RSA-PSS et ECDSA, livrée gratuitement avec chaque navigateur. Décodage, vérification, contrôle des revendications et signature passent par elle, dans cet onglet, sans aucune requête.
Pour le débogage réel, pas pour la démo
Les questions de trois heures de l’après-midi : ce 401 vient-il d’un jeton expiré ou d’une mauvaise clé sur la passerelle ? Le client a-t-il envoyé l’audience attendue par l’API ? Ce kid est-il encore dans le JWKS ? Collez le jeton, collez le jeu de clés, et obtenez une réponse motivée — y compris pour les jetons cassés et pas seulement invalides.
Un JWT porte le plus souvent une identité, et un secret de signature est ce qui les frappe. Ni l’un ni l’autre n’est envoyé ici : cet outil n’a pas de côté serveur, pas de compte, pas d’analytique sur ce que vous collez. Fermez l’onglet et les deux disparaissent, car la mémoire de cet onglet est le seul endroit où ils ont existé.
Questions fréquentes
QMon jeton ou ma clé sont-ils envoyés quelque part ?+
Non. Décodage, vérification de signature et signature s’exécutent dans votre navigateur via l’API Web Crypto. Il n’existe aucun composant serveur à qui envoyer quoi que ce soit, et rien n’est conservé d’une visite à l’autre.
QPeut-il vraiment vérifier la signature ?+
Oui, c’est tout l’objet de cette version. Collez le secret partagé pour HS256/384/512, ou une clé publique PEM, un JWK ou un JWKS pour RS, PS et ES. Le navigateur calcule, et le verdict est valide, invalide, ou une raison nommée expliquant pourquoi la clé n’a pas pu servir.
QQuels algorithmes sont pris en charge ?+
HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 et ES512, plus EdDSA là où le navigateur fournit Ed25519. ES512 utilise P-521, comme l’exige la spécification.
QQue se passe-t-il avec alg : none ?+
Il est signalé comme jeton non sécurisé et la vérification le refuse toujours. Un jeton sans signature est précisément l’attaque que ce contrôle vise, il n’obtient donc jamais de coche verte.
QPuis-je créer un jeton, pas seulement en lire un ?+
Oui. L’onglet de création permet de modifier l’en-tête et la charge utile, de choisir un algorithme, de générer sur place un secret ou une paire de clés RSA/EC, et de signer. Le résultat se rouvre dans l’inspecteur pour vérifier ce que vous avez produit.
QÀ quoi servent les contrôles de revendications ?+
Ils comparent le jeton à ce qu’exigerait un vérificateur : exp, nbf et iat avec le décalage d’horloge choisi, un âge maximal facultatif, et l’émetteur, l’audience et le sujet attendus par votre service. Chaque ligne passe, échoue, ou est ignorée si vous ne l’avez pas demandée.