JWT · Base64 · Hash

Examiner des jetons, encoder des données et calculer des empreintes. Rien ne quitte ton navigateur, pas même les clés.

Fonctionne entièrement dans le navigateurVérification avec PEM, certificat ou JWKEmpreintes même pour de gros fichiers

Vérifier la signature

Pour HS256 et similaires, colle le secret partagé ; sinon la clé publique en PEM, un certificat, ou un JWK ou JWKS (sélectionné par kid).

Créer ou modifier un jeton

L’en-tête et le payload sont repris du jeton ci-dessus. RS, PS, ES et EdDSA nécessitent la clé privée (PKCS#8, PKCS#1, SEC1 ou JWK).

JWT, Base64 et empreintes en bref

Un JSON Web Token (JWT) est une pièce d’identité signée au format texte. Les API, l’authentification unique et OAuth l’utilisent pour prouver qui fait une requête. Face à un jeton, on veut généralement savoir ce qu’il contient, s’il est encore valable et si la signature est correcte.

Structure d’un JWT

Un JWT se compose de trois parties encodées en Base64URL, séparées par des points : l’en-tête (algorithme et ID de clé), le payload (les claims comme sub, exp ou aud) et la signature. L’en-tête et le payload sont seulement encodés, pas chiffrés. Quiconque voit le jeton peut les lire. Pour des données confidentielles, il faut un jeton chiffré (JWE).

Vérifier la signature

Un jeton avec alg: none n’est pas signé et ne doit jamais être accepté. L’outil avertit aussi en cas de jeton expiré, d’exp manquant, de dates en millisecondes et d’en-têtes qui apportent leur propre clé (jwk, jku).

Base64, Base64URL, hexadécimal et encodage URL

Le Base64 représente n’importe quels octets avec 64 caractères imprimables ; il sert pour les pièces jointes, les certificats (PEM) et les URI data. Le Base64URL remplace + et / par - et _ et supprime le remplissage pour que le résultat tienne dans les URL et les JWT. L’hexadécimal écrit chaque octet avec deux caractères, l’encodage URL masque les caractères spéciaux avec %. Au décodage, l’outil détecte les données binaires, met le JSON en forme et reconnaît les types de fichiers courants.

Empreintes et HMAC

Avec SHA-256 ou SHA-512, tu vérifies qu’un fichier téléchargé n’a pas été modifié : colle l’empreinte de l’éditeur dans le champ de comparaison, dépose le fichier, c’est fait. MD5 et SHA-1 sont considérés comme cassés et ne servent plus qu’à comparer avec d’anciennes valeurs. CRC32 détecte les erreurs de transmission mais ne protège pas contre la falsification. Un HMAC combine le hash avec une clé secrète ; les webhooks, par exemple, signent ainsi leurs messages.

FAQ

Mes jetons ou clés sont-ils transmis ?

Non. Le décodage, la vérification, la signature et le hachage se font dans ton navigateur avec JavaScript et WebCrypto. Jetons et clés n’apparaissent pas non plus dans la barre d’adresse.

Comment vérifier un jeton d’Entra ID, Auth0 ou Keycloak ?

Ouvre l’adresse JWKS du fournisseur (généralement indiquée comme jwks_uri dans /.well-known/openid-configuration), copie le JSON et colle-le comme clé. L’outil choisit la clé dont le kid correspond.

Pourquoi ma signature HS256 est-elle invalide alors que le secret est bon ?

Le secret est souvent stocké encodé en Base64. Passe le format du secret sur Base64. Attention aussi aux espaces ou sauts de ligne en fin de texte.

Un JWT est-il chiffré ?

Un JWT normal (JWS) est seulement signé. Tout le monde peut lire l’en-tête et le payload. Les jetons chiffrés (JWE) ont cinq parties ; l’outil n’en affiche que l’en-tête.

Quelle empreinte utiliser ?

SHA-256 ou SHA-512 pour les téléchargements et contrôles d’intégrité. MD5 et SHA-1 seulement si l’éditeur ne publie rien d’autre.