Browser-Werkzeug

JWT-Encoder und Signierer

Ein signiertes JWT aus JSON mit HMAC, RSA, RSA-PSS oder ECDSA erstellen.

Lokal im Browser · Kein Upload · Kein Konto

HS nutzt ein Geheimnis; RS, PS und ES benötigen einen privaten PEM-PKCS#8-Schlüssel.

Füge keine produktiven Geheimnisse oder privaten Schlüssel in ein Browser-Werkzeug ein. Nutze produktiv eine gepflegte JWT-Bibliothek und geschützte serverseitige Schlüssel.

So funktioniert dieses Werkzeug

Ein signiertes JWT aus JSON mit HMAC, RSA, RSA-PSS oder ECDSA erstellen.

Nutze das Beispiel, um Eingabe und Metadaten zu prüfen, und ersetze es dann durch deinen Wert.

Datenschutz und sichere Nutzung

Die Verarbeitung bleibt in diesem Browser-Tab. Große Werte können viel Gerätespeicher benötigen.

Füge keine produktiven Geheimnisse oder privaten Schlüssel in ein Browser-Werkzeug ein. Nutze produktiv eine gepflegte JWT-Bibliothek und geschützte serverseitige Schlüssel.

Häufige Fehler und Ursachen

  • Die Eingabe ist leer, fehlerhaft oder hat nicht das erwartete Format.
  • Der gewählte Modus passt nicht zu Alphabet, Dateityp oder Darstellung.
  • Sehr große Werte können den Speicher erschöpfen, weil kodierte und dekodierte Kopien gleichzeitig vorliegen.
  • Eine erfolgreiche Umwandlung beweist nicht, dass der Inhalt sicher oder vertrauenswürdig ist.

Entsprechende Befehle

Nutze eine vorhandene Laufzeit oder Shell. Prüfe fremde Eingaben und gib Binärdaten nicht direkt im Terminal aus.

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)

Standards und offizielle Referenzen