Cara kerja alat ini
Buat JWT bertanda tangan dari JSON dengan HMAC, RSA, RSA-PSS, atau ECDSA.
Gunakan contoh untuk melihat input dan metadata, lalu ganti dengan nilai Anda.
Privasi dan penggunaan aman
Pemrosesan tetap di tab browser ini. Nilai besar masih dapat memakai banyak memori perangkat.
Jangan tempel secret atau private key produksi ke alat browser. Di produksi, gunakan pustaka JWT terpelihara dan penyimpanan key server yang terlindungi.
Kegagalan umum yang dijelaskan
- Input kosong, rusak, atau tidak memakai format yang diharapkan.
- Mode yang dipilih tidak sesuai dengan alfabet, jenis file, atau representasi.
- Nilai sangat besar dapat menghabiskan memori ketika salinan encoded dan decoded ada bersamaan.
- Konversi berhasil tidak membuktikan isi aman atau tepercaya.
Perintah yang setara
Gunakan runtime atau shell yang tersedia. Validasi input tidak tepercaya dan jangan mencetak data biner langsung ke 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)