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
Hasil Perhitungan
- 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
Uji aturan firewall dan skrip cron pada lingkungan staging terlebih dahulu, dan simpan backup konfigurasi di Git.
| Algoritma Tanda Tangan JWS | Signature Mentah (Byte) | Signature Base64URL (Karakter) | Total Ukuran JWT (Byte) |
|---|---|---|---|
| HS256 | 32 Byte | 43 Byte | 583 Byte |
| ES256 | 64 Byte | 86 Byte | 652 Byte |
| EdDSA | 64 Byte | 86 Byte | 652 Byte |
| HS512 | 64 Byte | 86 Byte | 626 Byte |
| RS256 | 256 Byte | 342 Byte | 908 Byte |
| RS512 | 512 Byte | 683 Byte | 1.223 Byte |
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 BytesCara Menggunakan Alat Ini
- Pilih algoritma penandatanganan JWT (HS256, RS256, ES256, EdDSA, HS512, atau RS512) dan masukkan ukuran JSON payload dasar beserta jumlah klaim kustom.
- Masukkan masa aktif token (TTL dalam menit) dan rata-rata jumlah request API per hari.
- 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).
- 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
- 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
| Algoritma Tanda Tangan JWS | Signature Mentah (Byte) | Signature Base64URL (Karakter) | Total Ukuran JWT (Byte) |
|---|---|---|---|
| HS256 | 32 Byte | 43 Byte | 583 Byte |
| ES256 | 64 Byte | 86 Byte | 652 Byte |
| EdDSA | 64 Byte | 86 Byte | 652 Byte |
| HS512 | 64 Byte | 86 Byte | 626 Byte |
| RS256 | 256 Byte | 342 Byte | 908 Byte |
| RS512 | 512 Byte | 683 Byte | 1.223 Byte |
Konsep Dasar & Catatan Teknis
Cara Perhitungan (Rumus & Langkah)
Rumus Matematika
- Panjang Karakter Base64URL = ceil((Ukuran_Byte_Mentah × 4) ÷ 3)
- Total Ukuran Token JWT = Panjang(Header_B64) + 1 + Panjang(Payload_B64) + 1 + Panjang(Signature_B64)
- Ukuran Header HTTP Authorization = Total_Token_JWT + 24 byte ('Authorization: Bearer \r\n')
Langkah Substitusi
- Header JSON = 46 byte → Base64URL: ⌈46 × 4 / 3⌉ = 62 karakter.
- Payload JSON efektif = 280 + (4 klaim × 24B) = 376 byte → Base64URL: ⌈376 × 4 / 3⌉ = 502 karakter.
- Signature RS256 = 256 byte biner → Base64URL: ⌈256 × 4 / 3⌉ = 342 karakter.
- Total Token JWT = 62 + 1 + 502 + 1 + 342 = 908 byte (Header HTTP Authorization: 932 byte).
- Trafik Bulanan (100,000 req/hari × 30 hari) = 2.604 GiB/bulan khusus header autentikasi.
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.
Alat Kalkulator Terkait
Lihat Semua Kalkulator Developer & Keamanan →Hitung bit entropi kriptografi kata sandi (E = L × log2(R)), ukuran ruang kunci kombinasi, dan tabel waktu bobol brute-force pada Bcrypt/GPU.
Hitung overhead enkapsulasi kriptografi, MTU antarmuka tunnel optimal, TCP MSS clamping, dan throughput bersih untuk WireGuard, IPsec ESP, dan OpenVPN.
Hitung total Events Per Second (EPS), volume log harian (GB/hari), kapasitas Hot Storage NVMe & Cold Archive terkompresi untuk Wazuh, ELK, dan Graylog.
Hitung alamat network, broadcast, rentang host usable, netmask, wildcard, biner mask, dan tipe alamat IPv4 (RFC 1918, RFC 3021 /31, CGNAT).
Referensi Standar & Catatan
- IETF RFC 7519 — JSON Web Token (JWT) Specification
- IETF RFC 7515 — JSON Web Signature (JWS) & Base64URL Encoding
Catatan: Hasil di atas merupakan estimasi berdasarkan rumus standar. Selalu verifikasi dengan dokumentasi resmi vendor dan kondisi lapangan sebelum implementasi pada lingkungan produksi.