Lewati ke konten utama

Kalkulator Ukuran Token JWT, Base64 Overhead & Masa Aktif (TTL)

Hitung ukuran byte token JWT (HS256, RS256, ES256, EdDSA), overhead Base64URL, batas Cookie 4 KB & header Nginx 8 KB, serta bandwidth bulanan.

Parameter Input

Coba Contoh:
Byte
2016384
0200
Menit
11000
100500000

Hasil Perhitungan

Utilisasi Batas Cookie Browser 4 KB (908 / 4096 Byte)22.00%
Algoritma Tanda Tangan JWS
RS256
Ukuran JSON Header Mentah
46 Byte
Panjang Segmen Header (Base64URL)
62 Byte
Ukuran JSON Payload Efektif
376 Byte
Panjang Segmen Payload (Base64URL)
502 Byte
Ukuran Signature Biner Mentah
256 Byte
Panjang Segmen Signature (Base64URL)
342 Byte
Total Ukuran Token JWT
908 Byte
Ukuran Header HTTP Authorization
932 Byte
Persentase Overhead Base64URL
33,92 %
Status Batas Penyimpanan Browser Cookie (4 KB)
Aman untuk Browser Cookie (< 4 KB)
Status Batas Buffer Header Nginx (8 KB)
Aman untuk Default Header Proxy Nginx/Cloudflare (< 8 KB)
Durasi Masa Aktif Token (TTL)
1 Jam
Konsumsi Bandwidth Header Harian
88,88 MiB/Hari
Konsumsi Bandwidth Header Bulanan (30 Hari)
2,604 GiB/Bulan
Ingin membandingkan 2 opsi desain (misal: RAIDZ1 vs RAIDZ2, atau Cat6 vs Cat5e)?
⚡ Standar Hardening & Operasional Produksi
Debian 12 / Ubuntu 24.04 LTS + Nftables + Systemd Timer
CIS Benchmark Level 1 • Non-Root SSH Key-Only + Fail2ban/CrowdSec

Uji aturan firewall dan skrip cron pada lingkungan staging terlebih dahulu, dan simpan backup konfigurasi di Git.

Tabel Perbandingan Ukuran Token Berdasarkan Algoritma JWS
Algoritma Tanda Tangan JWSSignature Mentah (Byte)Signature Base64URL (Karakter)Total Ukuran JWT (Byte)
HS25632 Byte43 Byte583 Byte
ES25664 Byte86 Byte652 Byte
EdDSA64 Byte86 Byte652 Byte
HS51264 Byte86 Byte626 Byte
RS256256 Byte342 Byte908 Byte
RS512512 Byte683 Byte1.223 Byte
anatomi Struktur Header & Segmen Token JWT
Authorization: Bearer <header:62B>.<payload:502B>.<signature:342B>
Header JSON (46B)  -> {"alg":"RS256","typ":"JWT"},"kid":"key-2026"
Payload JSON (376B) -> {"sub":"usr_9281","iat":1762473600,"exp":1762477200,"claims":4}
Signature (256B raw -> 342B Base64URL) | Total HTTP Header: 932 Bytes
Bagikan ke WhatsApp

Cara Menggunakan Alat Ini

  1. Pilih algoritma penandatanganan JWT (HS256, RS256, ES256, EdDSA, HS512, atau RS512) dan masukkan ukuran JSON payload dasar beserta jumlah klaim kustom.
  2. Masukkan masa aktif token (TTL dalam menit) dan rata-rata jumlah request API per hari.
  3. Periksa total ukuran byte token JWT, status batas Cookie 4 KB & Nginx 8 KB, konsumsi bandwidth bulanan khusus header autentikasi, dan tabel perbandingan algoritma.

Contoh Perhitungan Nyata: Microservice API Gateway Standar (RS256, 280B Payload)

Contoh terhitung: Token RS256 dengan payload 280 byte + 4 klaim kustom (total 376B JSON) menghasilkan 62B header, 502B payload Base64URL, dan 342B signature = 908 byte token JWT (932 byte header HTTP Authorization).

Input Contoh
Algoritma Tanda Tangan Kriptografi (JWS)
RS256 (RSA 2048-bit Signature — 256 Byte Mentah)
Ukuran Payload JSON Dasar (Byte)
280 Byte
Jumlah Klaim Tambahan (Roles / Permissions)
4
Masa Aktif Token / TTL (Menit)
60 Menit
Rata-rata Request API per Hari
100.000
Output Terhitung
Algoritma Tanda Tangan JWS
RS256
Ukuran JSON Header Mentah
46 Byte
Panjang Segmen Header (Base64URL)
62 Byte
Ukuran JSON Payload Efektif
376 Byte
Panjang Segmen Payload (Base64URL)
502 Byte
Ukuran Signature Biner Mentah
256 Byte
Panjang Segmen Signature (Base64URL)
342 Byte
Total Ukuran Token JWT
908 Byte
Ukuran Header HTTP Authorization
932 Byte
Persentase Overhead Base64URL
33,92 %
Status Batas Penyimpanan Browser Cookie (4 KB)
Aman untuk Browser Cookie (< 4 KB)
Status Batas Buffer Header Nginx (8 KB)
Aman untuk Default Header Proxy Nginx/Cloudflare (< 8 KB)
Durasi Masa Aktif Token (TTL)
1 Jam
Konsumsi Bandwidth Header Harian
88,88 MiB/Hari
Konsumsi Bandwidth Header Bulanan (30 Hari)
2,604 GiB/Bulan
anatomi Struktur Header & Segmen Token JWT
Authorization: Bearer <header:62B>.<payload:502B>.<signature:342B> Header JSON (46B) -> {"alg":"RS256","typ":"JWT"},"kid":"key-2026" Payload JSON (376B) -> {"sub":"usr_9281","iat":1762473600,"exp":1762477200,"claims":4} Signature (256B raw -> 342B Base64URL) | Total HTTP Header: 932 Bytes
Tabel Perbandingan Ukuran Token Berdasarkan Algoritma JWS
Algoritma Tanda Tangan JWSSignature Mentah (Byte)Signature Base64URL (Karakter)Total Ukuran JWT (Byte)
HS25632 Byte43 Byte583 Byte
ES25664 Byte86 Byte652 Byte
EdDSA64 Byte86 Byte652 Byte
HS51264 Byte86 Byte626 Byte
RS256256 Byte342 Byte908 Byte
RS512512 Byte683 Byte1.223 Byte

Konsep Dasar & Catatan Teknis

JSON Web Token (JWT) sesuai spesifikasi RFC 7519 adalah standar terbuka berbasis JSON untuk mentransmisikan klaim identitas dan otorisasi secara ringkas di antara layanan mikro (microservices), API gateway, dan aplikasi klien. Sebuah token JWT yang ditandatangani secara kriptografis (JWS — RFC 7515) terdiri dari tiga segmen yang dipisahkan oleh karakter titik (.): JOSE Header yang mendeklarasikan algoritma tanda tangan, Payload yang memuat klaim JSON (seperti sub, iat, exp, dan daftar peran pengguna), serta Signature biner yang menjamin keutuhan data. Ketiga segmen tersebut dikodekan menggunakan skema Base64URL (RFC 4648). Karena Base64URL memetakan setiap 3 byte data biner (24 bit) menjadi 4 karakter teks ASCII (6 bit per karakter), ukuran payload dan signature otomatis mengalami pembengkakan (overhead) sekitar 33,33%. Selain itu, pemilihan algoritma kriptografi sangat menentukan ukuran akhir token: algoritma simetris HMAC-SHA256 (HS256) dan kurva eliptik ECDSA P-256 (ES256) atau EdDSA (Ed25519) menghasilkan signature yang ringkas (32 hingga 64 byte mentah, atau 43 hingga 86 karakter Base64URL), sedangkan algoritma RSA-2048 (RS256) menghasilkan signature 256 byte mentah (342 karakter Base64URL). Karena token JWT dikirimkan berulang kali pada setiap permintaan HTTP melalui header Authorization: Bearer atau disimpan di dalam browser cookie, ukuran token berdampak langsung pada batas infrastruktur jaringan. Browser modern membatasi ukuran satu cookie maksimal 4.096 byte (4 KB), sementara reverse proxy seperti Nginx secara default membatasi ukuran satu baris header HTTP sebesar 8 KB (large_client_header_buffers). Selain risiko kegagalan HTTP 431 Request Header Fields Too Large atau pemotongan cookie secara diam-diam oleh browser, ukuran JWT yang terlalu gemuk juga membebani konsumsi bandwidth keluar-masuk (ingress/egress) pada layanan mikro berskala tinggi. Menyimpan puluhan daftar izin (permissions array), profil pengguna lengkap, atau riwayat sesi di dalam payload JWT akan menggandakan lalu lintas jaringan pada setiap panggilan API internal maupun eksternal. Arsitek sistem yang mengikuti praktik terbaik OAuth 2.0 dan OpenID Connect menjaga payload JWT tetap ramping—hanya memuat klaim pengenal esensial seperti sub, iss, aud, exp, dan jti—serta beralih dari tanda tangan RSA (RS256) ke kurva eliptik (ES256 atau EdDSA) guna memangkas ukuran signature hingga 75% tanpa mengurangi tingkat keamanan kriptografi.

Cara Perhitungan (Rumus & Langkah)

Pertanyaan yang Sering Diajukan (FAQ)

Mengapa beralih dari RS256 ke ES256 atau EdDSA dapat menghemat ukuran token secara signifikan?

Kunci asimetris RSA 2048-bit menghasilkan tanda tangan 256 byte (342 karakter Base64URL), sedangkan kurva eliptik ES256/EdDSA memberikan keamanan setara hanya dengan tanda tangan 64 byte (86 karakter), menghemat 256 byte pada setiap request.

Apa yang terjadi jika ukuran JWT melebihi 4.096 byte saat disimpan di Cookie?

Sesuai RFC 6265, browser akan menolak menyimpan cookie yang melebihi 4 KB secara diam-diam (silent drop), sehingga sesi login pengguna gagal tersimpan tanpa pesan error yang jelas di sisi klien.

Mengapa Nginx mengembalikan HTTP 400 Bad Request atau 431 Request Header Fields Too Large?

Secara default, direktif large_client_header_buffers pada Nginx bernilai 4×8k. Jika header Authorization atau Cookie yang memuat JWT melebihi 8 KB, Nginx langsung menolak request sebelum mencapai aplikasi backend.

Berapa TTL (masa aktif) yang disarankan untuk Access Token JWT?

Karena JWT bersifat stateless dan tidak dapat dicabut secara instan tanpa daftar blokir (denylist), Access Token sebaiknya berumur pendek antara 5 hingga 15 menit, didampingi oleh Refresh Token yang dapat dicabut di database.