Dekoder JWT
Dekode JSON Web Token (JWT) untuk melihat header, payload, dan tanda tangannya. Berguna untuk debugging dan memeriksa token JWT yang digunakan dalam autentikasi dan otorisasi. Isi JWT Anda tidak akan disimpan di mana pun.
Payload (Claims):
Header (Algoritma Tanda Tangan & Tipe Token):
Tanda Tangan:
Tanda tangan ditampilkan sebagai data yang dikodekan Base64URL. Verifikasi tanda tangan tidak dilakukan oleh alat ini.
Lebih Lanjut tentang JSON Web Tokens
Format JWT
JSON Web Token (JWT) adalah cara yang ringkas dan aman untuk URL dalam merepresentasikan klaim yang ditransfer antara dua pihak. Terdiri dari tiga bagian yang dikodekan Base64URL yang dipisahkan oleh titik: header.payload.signature. Header biasanya berisi tipe token (JWT) dan algoritma penandatanganan. Payload berisi klaim—pernyataan tentang entitas (biasanya pengguna) dan metadata tambahan. Signature digunakan untuk memverifikasi bahwa pesan tidak diubah selama perjalanan.
JOSE (JSON Object Signing and Encryption)
JWT adalah bagian dari framework JOSE (JSON Object Signing and Encryption) yang lebih besar, yang menyediakan cara standar untuk mengamankan data berbasis JSON. JOSE mencakup beberapa spesifikasi terkait: JWS (JSON Web Signature) untuk token yang ditandatangani, JWE (JSON Web Encryption) untuk token yang dienkripsi, JWK (JSON Web Key) untuk merepresentasikan kunci kriptografi, dan JWA (JSON Web Algorithms) untuk menentukan algoritma kriptografi.
JSON Web Signature (JWS)
Sebagian besar JWT yang Anda temui adalah token JWS—ditandatangani tetapi tidak dienkripsi. Ini berarti siapa pun dapat membaca payload dengan mendekodenya dari Base64URL, tetapi mereka tidak dapat memodifikasinya tanpa membatalkan tanda tangan. JWS menyediakan integritas dan keaslian: Anda dapat memverifikasi bahwa token dikeluarkan oleh pihak tepercaya dan belum dirusak.
Algoritma Penandatanganan
JWS mendukung berbagai algoritma kriptografi untuk menandatangani token. Ini terbagi dalam dua kategori: algoritma simetris (kunci yang sama untuk penandatanganan dan verifikasi) dan algoritma asimetris (kunci privat untuk penandatanganan, kunci publik untuk verifikasi).
Algoritma HMAC (Simetris)
HS256, HS384, dan HS512 menggunakan HMAC (Hash-based Message Authentication Code) dengan SHA-256, SHA-384, atau SHA-512 masing-masing. Ini adalah algoritma simetris—kunci rahasia yang sama digunakan untuk menandatangani dan memverifikasi token. Algoritma HMAC cepat dan sederhana tetapi memerlukan distribusi kunci yang aman karena kedua pihak membutuhkan rahasia yang sama.
Algoritma RSA (Asimetris)
RS256, RS384, dan RS512 menggunakan RSASSA-PKCS1-v1_5 dengan SHA-256, SHA-384, atau SHA-512. PS256, PS384, dan PS512 menggunakan RSASSA-PSS (skema tanda tangan probabilistik). Algoritma RSA menggunakan kunci privat untuk menandatangani dan kunci publik untuk memverifikasi. Ini memungkinkan kunci verifikasi dibagikan secara publik tanpa mengorbankan keamanan—ideal untuk sistem terdistribusi di mana beberapa layanan perlu memverifikasi token.
Algoritma Kurva Eliptik (Asimetris)
ES256, ES384, dan ES512 menggunakan ECDSA (Elliptic Curve Digital Signature Algorithm) dengan kurva P-256, P-384, atau P-521 masing-masing. Algoritma EC menawarkan keamanan yang sama seperti RSA tetapi dengan ukuran kunci yang lebih kecil, menghasilkan tanda tangan yang lebih kecil dan operasi yang lebih cepat. ES256 semakin populer untuk aplikasi modern karena efisiensinya.
JSON Web Encryption (JWE)
Sementara JWS menyediakan token yang ditandatangani, JWE menyediakan token yang dienkripsi di mana payload bersifat rahasia. Token JWE memiliki lima bagian bukan tiga: header, kunci terenkripsi, vektor inisialisasi, ciphertext, dan tag autentikasi. JWE mendukung berbagai algoritma enkripsi termasuk AES-GCM dan AES-CBC dengan HMAC. Perhatikan bahwa dekoder ini hanya menangani token JWS; token JWE memerlukan dekripsi dengan kunci yang sesuai.
Spesifikasi RFC
Standar JWT dan JOSE didefinisikan dalam beberapa RFC IETF: RFC 7519 mendefinisikan JSON Web Token (JWT), RFC 7515 mendefinisikan JSON Web Signature (JWS), RFC 7516 mendefinisikan JSON Web Encryption (JWE), RFC 7517 mendefinisikan JSON Web Key (JWK), dan RFC 7518 mendefinisikan JSON Web Algorithms (JWA).