Alat di browser

Encoder dan penanda tangan JWT

Buat JWT bertanda tangan dari JSON dengan HMAC, RSA, RSA-PSS, atau ECDSA.

Diproses lokal · Tanpa upload · Tanpa akun

HS memakai secret; RS, PS, dan ES memerlukan private key PEM PKCS#8.

Jangan tempel secret atau private key produksi ke alat browser. Di produksi, gunakan pustaka JWT terpelihara dan penyimpanan key server yang terlindungi.

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)

Standar dan referensi resmi