Generator dan Pemeriksa JWT

Sunting header dan muatan sebagai JSON, atur waktunya dengan satu klik, dan tandatangani token dengan rahasia Anda. Tempel token di bawah untuk memeriksa tanda tangannya dengan rahasia yang sama.

Gratis Berjalan di peramban Anda Diperiksa Selasa, 10 November 2026

Alat ini berjalan di peramban Anda. Apa yang Anda masukkan tidak dikirim kepada kami.

Cara memakai

  1. Tulis Header (JSON) dan Muatan (JSON). Gunakan Atur iat ke sekarang, Atur nbf ke sekarang atau Atur exp dalam untuk mengisi waktunya.
  2. Pilih Algoritma dan ketik Rahasia. Pilih Base64 di bawah Pengodean rahasia jika rahasianya ditulis dalam Base64.
  3. Salin Token. Ia memiliki tiga bagian yang dipisahkan titik: header, muatan dan tanda tangan.
  4. Tempel token ke Token yang diperiksa untuk melihat apakah tanda tangannya cocok dengan rahasia di atas.

Cara JWT ditandatangani

JSON Web Token (RFC 7519) adalah header dan muatan, masing-masing ditulis sebagai JSON dan dikodekan dalam Base64url (RFC 7515), yang digabung dengan titik. Tanda tangannya adalah HMAC dari kedua bagian itu, dibuat dengan rahasia (RFC 7518, bagian 3.2). Header menyebut algoritma dalam bidang alg-nya, dan halaman ini mengatur bidang itu ke algoritma yang Anda pilih.

Halaman menulis setiap objek JSON dalam bentuk ringkasnya sebelum mengodekannya, sehingga byte yang ditandatangani adalah bentuk ringkas dari yang Anda ketik, bukan teks dengan spasi dan pemisah barisnya. Pihak mana pun yang memeriksa token bekerja dari byte yang diterimanya, jadi token tetap valid dalam kedua kasus.

masukan penandatanganan = BASE64URL(header) . BASE64URL(muatan)
tanda tangan         = HMAC-SHA-256(rahasia, masukan penandatanganan)
                       (HS384 dan HS512 memakai HMAC-SHA-384 dan HMAC-SHA-512)
token                = masukan penandatanganan . BASE64URL(tanda tangan)

Waktu dalam muatan

Klaim iat (issued at), nbf (not before) dan exp (expiration time) adalah NumericDate: detik sejak 1 Januari 1970 pukul 00.00 UTC (RFC 7519, bagian 2 dan 4.1). Token tidak diterima pada atau setelah exp, dan tidak sebelum nbf. Tombol-tombol menulis waktu dari jam perangkat Anda, jadi jam yang salah menghasilkan waktu yang salah.

Apa yang dilakukan dan tidak dilakukan pemeriksaan

Pemeriksaan menghitung ulang HMAC dari header dan muatan persis seperti yang ditempel, lalu membandingkannya dengan tanda tangan. Ia menolak alg none dan setiap algoritma selain HS256, HS384 dan HS512, sehingga sebuah token tidak dapat memilih pemeriksaan yang lebih lemah.

Ia tidak memeriksa arti klaim: bahwa iss adalah penerbit yang Anda harapkan, atau bahwa aud menamai layanan Anda. Aplikasi Anda harus memeriksanya, seperti yang direkomendasikan RFC 8725.

Contoh: HS256 dengan rahasia your-256-bit-secret

Dengan header {"alg": "HS256", "typ": "JWT"}, muatan {"sub": "1234567890", "name": "Ada Lovelace", "iat": 1516239022} dan rahasia UTF-8 your-256-bit-secret, halaman membuat token ini:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.nmm0qepYRjhNji3O-jq8Pvcr7l_me1_bomw4EJucQCU

Memeriksanya dengan rahasia yang sama memberi tanda tangan yang valid. Token itu tidak memiliki klaim exp atau nbf, jadi tidak ada waktu yang dapat membuatnya tidak valid. Memeriksanya dengan rahasia lain melaporkan bahwa tanda tangan tidak cocok.

Pertanyaan yang sering diajukan

Apakah rahasia saya dikirim ke server?

Tidak. Token ditandatangani di peramban Anda dengan SubtleCrypto milik peramban. Rahasia hanya disimpan selama halaman terbuka: ia tidak dikirim, disimpan, atau dicatat.

Mengapa halaman menyatakan tanda tangan cocok, tetapi pustaka saya menolak token?

Pustaka mungkin memeriksa waktu exp atau nbf, audiens atau penerbit, atau ia membaca rahasia dengan pengodean lain. Bacalah rahasia sebagai UTF-8 atau Base64 dengan cara yang sama seperti pustaka Anda, dan bandingkan waktunya dengan jam yang benar.

Mengapa alg none ditolak?

Token dengan alg none tidak memiliki tanda tangan, jadi siapa pun dapat menulisnya. Layanan harus menolaknya. Halaman ini menolaknya saat pemeriksaan, dan penandatanganannya selalu menulis algoritma HMAC.

Seberapa panjang rahasia sebaiknya?

Setidaknya sepanjang keluaran hash: 32 byte untuk HS256, 48 untuk HS384 dan 64 untuk HS512 (RFC 7518, bagian 3.2). Halaman memberi peringatan ketika rahasia lebih pendek.

Dapatkah halaman ini membuat token RS256 atau ES256?

Tidak. Ia menandatangani dan memeriksa hanya dengan rahasia bersama, memakai HS256, HS384 atau HS512. Token yang ditandatangani dengan kunci privat RSA atau ECDSA memerlukan kunci itu, yang tidak diterima halaman ini.

Kapan saya sebaiknya memilih Base64 untuk rahasia?

Hanya ketika rahasia ditulis dalam Base64, misalnya nilai k dari JSON Web Key. Jika tidak, rahasia dibaca sebagai teks UTF-8 persis seperti yang Anda ketik, termasuk spasinya.

Sumber

Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.

Kami memakai cookie yang diperlukan agar situs berjalan. Dengan persetujuan Anda, Google juga memakai cookie iklan untuk menampilkan iklan yang dipersonalisasi. Jika Anda menolaknya, iklan tetap tampil, tetapi tidak dipersonalisasi.