Outil dans le navigateur

Encodeur et signataire JWT

Créez un JWT signé depuis du JSON avec HMAC, RSA, RSA-PSS ou ECDSA.

Traitement local · Aucun envoi · Aucun compte

HS utilise un secret ; RS, PS et ES nécessitent une clé privée PEM PKCS#8.

Ne collez pas de secrets ou clés privées de production dans un outil web. En production, utilisez une bibliothèque JWT maintenue et un stockage serveur protégé.

Fonctionnement de cet outil

Créez un JWT signé depuis du JSON avec HMAC, RSA, RSA-PSS ou ECDSA.

Utilisez l’exemple pour vérifier l’entrée et les métadonnées, puis remplacez-le par votre valeur.

Confidentialité et utilisation sûre

Le traitement reste dans cet onglet. Les grandes valeurs peuvent consommer beaucoup de mémoire.

Ne collez pas de secrets ou clés privées de production dans un outil web. En production, utilisez une bibliothèque JWT maintenue et un stockage serveur protégé.

Erreurs courantes expliquées

  • L’entrée est vide, endommagée ou n’utilise pas le format attendu.
  • Le mode choisi ne correspond pas à l’alphabet, au type de fichier ou à la représentation.
  • Une très grande valeur peut épuiser la mémoire lorsque les copies encodée et décodée coexistent.
  • Une conversion réussie ne prouve pas que le contenu est sûr ou fiable.

Commandes équivalentes

Utilisez le runtime ou le shell disponible. Validez les entrées non fiables et évitez d’imprimer du binaire directement dans le terminal.

Python

import base64, hashlib, hmac, json
b64 = lambda value: base64.urlsafe_b64encode(value).rstrip(b'=').decode()
body = '.'.join([b64(json.dumps(header, separators=(',', ':')).encode()), b64(json.dumps(payload, separators=(',', ':')).encode())])
token = body + '.' + b64(hmac.new(secret, body.encode(), hashlib.sha256).digest())

JavaScript

import { createHmac } from 'node:crypto';
const b64 = value => Buffer.from(JSON.stringify(value)).toString('base64url');
const body = `${b64(header)}.${b64(payload)}`;
const token = `${body}.${createHmac('sha256', secret).update(body).digest('base64url')}`;

Shell

b64url() { openssl base64 -A | tr '+/' '-_' | tr -d '='; }
body="$(printf '%s' "$HEADER" | b64url).$(printf '%s' "$PAYLOAD" | b64url)"
sig=$(printf '%s' "$body" | openssl dgst -sha256 -mac HMAC -macopt "key:$SECRET" -binary | b64url)

Normes et références officielles