Generator JWT

Buat JWT

Buat dan tandatangani token JWT langsung di peramban Anda. Masukkan klaim payload (standar seperti sub, aud, exp, dll., serta nilai khusus apa pun), pilih algoritma (HS256 dengan rahasia bersama atau RS256/ES256 dengan kunci privat), lalu alat tersebut akan menghasilkan token tiga komponen. Alat ini sangat berguna untuk pengembangan lokal, pengujian beban, dan reproduksi masalah autentikasi.

Cara Membuat JWT

  1. 1

    Tulis payload-nya.

    Tuntutan standar (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) serta tuntutan khusus lainnya yang diharapkan oleh aplikasi Anda.

  2. 2

    Pilih algoritma

    HS256/384/512 dengan rahasia bersama, atau RS256/ES256 dengan kunci pribadi dalam format PEM.

  3. 3

    Berikan kunci tersebut.

    Masukkan teks rahasia bersama untuk HMAC, atau tempelkan kunci pribadi untuk RSA/ECDSA. Kedua data tersebut akan tetap tersimpan di peramban Anda.

  4. 4

    Dihasilkan

    Hasilnya adalah token berpenanda tanda. Salinnya, gunakan dalam pengujian, lalu dekodifikasinya menggunakan JWT Decoder untuk dianalisis.

Beban data tipikal untuk token pengguna terautentikasi

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "user_12345",
  "iat": 1713398400,
  "nbf": 1713398400,
  "exp": 1713402000,
  "jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
  "scope": "read:profile write:posts"
}

Pemilihan algoritma: HMAC versus asimetris

Algoritma Jenis Kunci Digunakan saat
HS256 Rahasia bersama berukuran 256 bit Komponen tunggal yang mampu menandatangani dan memverifikasi dirinya sendiri
HS384/512 Rahasia yang lebih panjang Sama dengan HS256, lebih kuat
RS256 RSA 2048+ Tanda tangan penerbit; banyak layanan memverifikasi menggunakan kunci publik
ES256 ECDSA P-256 Sama dengan RS256, tetapi menggunakan tanda tangan yang lebih kecil
EdDSA Ed25519 Verifikasi asimetris tercepat dengan kunci terkecil

Kekuatan kunci

  • Rahasia HMAC harus memiliki entropi minimal sebesar ukuran keluaran algoritma tersebut. HS256 memerlukan 256 bit acak (32 byte); nilai yang lebih kecil dapat dipecahkan dengan metode brute-force.
  • Kunci RSA harus memiliki panjang minimal 2048 bit; untuk token berumur panjang, sebaiknya menggunakan kunci dengan panjang 3072 atau 4096 bit.
  • ECDSA (ES256) menawarkan tingkat keamanan yang setara dengan RSA 3072, namun menggunakan kunci yang jauh lebih kecil dan proses penandatanganan yang lebih cepat.

Pedoman masa kedaluwarsa

Jenis token Durasi khas exp
Token akses 5–60 menit
Token pembaruan Dari hari hingga minggu
Pengaturan ulang kata sandi 5–15 menit
Verifikasi email 24 jam
Layanan ke layanan 1–5 menit (singkat)

Token dengan masa berlaku singkat dan mekanisme pembaruan merupakan pola yang umum digunakan saat ini. Sementara itu, token akses berumur panjang sulit dicabut jika telah disusupi.

Kesalahan Umum

  • Menggunakan kembali rahasia uji di lingkungan produksi. Generator akan menandai rahasia HS256 serta JWT keluaran sebagai “hanya untuk uji coba” jika rahasia tersebut terlihat lemah. Percayalah pada peringatan ini.
  • Menandatangani tanpa exp. JWT yang tidak memiliki tanggal kedaluwarsa akan tetap sah selamanya. Selalu atur exp, kecuali Anda memiliki alasan yang sangat kuat serta daftar pembatalan (revocation list).
  • Menggunakan alg dari header pada sisi verifikasi. Selalu masukkan algoritma ke dalam daftar putih di sisi verifikasi; jangan mengikuti apa yang diminta oleh token.
  • Menempelkan kunci pribadi asli di sini. Generator ini berjalan di peramban Anda, tetapi anggaplah kunci pribadi sebagai rahasia; gunakan kunci uji, bukan kunci produksi.

Pertanyaan yang Sering Diajukan

Tidak. Proses penandatanganan dilakukan di peramban Anda menggunakan Web Crypto API. Kunci tidak pernah keluar dari perangkat Anda. Namun demikian, untuk kunci produksi, buat dan tandatangani kuncinya dalam lingkungan terkendali, bukan di peramban.

HS256 cukup memadai untuk sistem monolitik di mana proses penandatanganan dan verifikasi dilakukan oleh pihak yang sama. RS256 atau ES256 lebih baik digunakan ketika penerbit berbeda dengan pihak verifikator, karena kunci publik dapat dibagikan tanpa membocorkan kunci penandatanganan.

Waktu pengiriman token akses umumnya berkisar antara 5 hingga 15 menit. Gunakan token pembaruan dengan masa berlaku yang lebih panjang untuk pengalaman pengguna yang mulus. Jangan pernah menerbitkan JWT tanpa klaim exp.

Alat ini mendukung pengiriman alg: none untuk pengujian sengaja terhadap token yang rusak atau tidak tertandatangan, disertai peringatan yang jelas. Jangan pernah menerima token semacam itu dalam kode produksi.

Alat Terkait

Alat ini tersedia dalam bahasa lain