Encodeur/Décodeur JWT
Décodez, vérifiez et générez des tokens JWT en toute sécurité
JWT décodé
En-tête
Charge utile
Signature
En-tête
Charge utile
Entrez vos données de payload au format JSON
Clé secrète
Cette clé secrète est utilisée pour signer le JWT. Gardez-la en sécurité !
JWT généré
Guide Complet sur les JSON Web Tokens (JWT)
Qu'est-ce que le JWT ?
Le JSON Web Token (JWT) est une norme ouverte (RFC 7519) qui définit un moyen compact et autonome pour transmettre en toute sécurité des informations entre des parties sous forme d'objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement. Les JWT peuvent être signés à l'aide d'un secret (avec l'algorithme HMAC) ou d'une paire de clés publique/privée utilisant RSA ou ECDSA.
La Structure d'un JWT
Un JWT se compose techniquement de trois parties séparées par des points (.), qui sont :
- En-tête (Header) : L'en-tête se compose généralement de deux parties : le type de token (JWT) et l'algorithme de signature utilisé, tel que HMAC SHA256 ou RSA.
- Charge utile (Payload) : La charge utile contient les revendications (claims). Les revendications sont des déclarations concernant une entité (généralement l'utilisateur) et des données supplémentaires. Il existe trois types de revendications : enregistrées, publiques et privées.
- Signature : Pour créer la partie signature, vous devez prendre l'en-tête encodé, la charge utile encodée, un secret, l'algorithme spécifié dans l'en-tête, et signer le tout. La signature est utilisée pour vérifier que le message n'a pas été modifié en cours de route.
Algorithmes Supportés
Cet outil supporte le décodage et la vérification pour tous les algorithmes standards et la génération pour les algorithmes symétriques :
- HS256: HS256 (HMAC SHA-256) : Symétrique. Nécessite une clé secrète partagée. Rapide et courant pour les microservices.
- HS384: HS384 : Symétrique. Utilise un hachage de 384 bits.
- HS512: HS512 : Symétrique. Le plus sécurisé pour les signatures symétriques.
- RS256: RS256 (RSA SHA-256) : Asymétrique. Clé privée pour signer, clé publique pour vérifier. Idéal pour les API publiques.
- RS384: RS384 : Asymétrique. Plus fort que RS256.
- RS512: RS512 : Asymétrique. Sécurité maximale pour RSA.
Comprendre les Claims JWT
Les claims sont des informations affirmées sur un sujet. Les claims enregistrés standards incluent :
- iss (Issuer): iss (Issuer) : Identifie l'émetteur du JWT.
- sub (Subject): sub (Subject) : Identifie le sujet du JWT (ex: ID utilisateur).
- aud (Audience): aud (Audience) : Identifie les destinataires prévus du JWT.
- exp (Expiration Time): exp (Expiration Time) : Identifie l'heure d'expiration.
- nbf (Not Before): nbf (Not Before) : Identifie l'heure avant laquelle le JWT ne doit pas être accepté.
- iat (Issued At): iat (Issued At) : Identifie l'heure à laquelle le JWT a été émis.
- jti (JWT ID): jti (JWT ID) : Fournit un identifiant unique pour le JWT.
Quand utiliser JWT ?
- Autorisation : C'est le scénario le plus courant. Une fois l'utilisateur connecté, chaque requête suivante inclura le JWT, permettant à l'utilisateur d'accéder aux routes, services et ressources permis avec ce token.
- Échange d'informations : Les JWT sont un bon moyen de transmettre des informations en toute sécurité entre les parties. Car les JWT peuvent être signés, vous pouvez être sûr que les expéditeurs sont bien ceux qu'ils prétendent être.
- Sessions sans état : Contrairement aux sessions côté serveur, les JWT contiennent toutes les données utilisateur nécessaires.
- SSO Cross-Domain : Les JWT sont parfaits pour le Single Sign-On (SSO) entre différents domaines.
- Sécurité API : Sécurisation des API RESTful sans état de session serveur.
Bonnes Pratiques de Sécurité: 1. Ne mettez pas de données sensibles (comme les mots de passe) dans la charge utile ; elle est lisible par tous. 2. Vérifiez toujours la signature. 3. Utilisez 'exp' pour limiter la durée de vie du token. 4. Utilisez HTTPS. 5. Stockez les tokens en sécurité (les cookies HttpOnly sont recommandés contre XSS).
Références
Foire Aux Questions (FAQ)
JWT est-il du chiffrement ou de l'encodage ?
Les JWT standards sont encodés et signés, NON chiffrés. Les données de la charge utile sont encodées en Base64Url, ce qui signifie que n'importe qui peut les décoder et les lire. La signature garantit que les données n'ont pas été falsifiées, mais elle ne les cache pas.
Où stocker les JWT sur le client ?
Pour les applications web, stocker les JWT dans des cookies `HttpOnly` est généralement considéré comme plus sûr que `localStorage` car les cookies sont immunisés contre les attaques XSS.
Que se passe-t-il si un JWT est volé ?
Si un JWT est volé, le voleur peut usurper l'identité de l'utilisateur jusqu'à l'expiration du token. C'est pourquoi il est essentiel d'utiliser des temps d'expiration courts (`exp`).
Cet outil envoie-t-il mes clés au serveur ?
Non. Cet outil s'exécute entièrement côté client. Vos clés privées, clés secrètes et données de token ne quittent jamais votre navigateur.
Puis-je modifier manuellement la charge utile ?
Vous pouvez modifier la charge utile localement, mais la signature deviendra invalide. Le serveur rejettera le token à moins que vous ne le signiez à nouveau avec la bonne clé.
Quelle est la différence entre HS256 et RS256 ?
HS256 est symétrique (une clé partagée). RS256 est asymétrique (clé privée pour signer, clé publique pour vérifier). RS256 est mieux adapté aux systèmes distribués.
Outils Connexes
Encodeur/Décodeur Base64
Encodez et décodez rapidement des chaînes Base64, prenant en charge la conversion de texte et de fichiers
Générateur HMAC
Outil de génération HMAC en ligne supportant MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 et RIPEMD-160
Calculateur de Date
Calculer les jours entre deux dates, ajouter/soustraire des jours, calculer l'âge, compter les jours ouvrés
Formateur JSON
Formatez et validez les données JSON pour une meilleure lisibilité et débogage
Générateur de hachage SHA
Outil en ligne de génération de hachage SHA supportant SHA-1, SHA-256, SHA-384, SHA-512
Chiffrement/Déchiffrement RSA
Utiliser le chiffrement asymétrique RSA pour le chiffrement à clé publique, le déchiffrement à clé privée, la signature et la vérification numériques