Bahasa Indonesia

Alat pengembang · dekoder JWT

Anatomi JWT: Memisahkan Titik dan Menguraikan Kode Base64url

· Cara kerjanya

jwt pengkodean keamanan

Tiga segmen JWT berlabel header, payload, dan tanda tangan
Ilustrasi vektor ToolAcre asli

JWT adalah tiga segmen url base64 yang dipisahkan oleh titik. Posting ini menerjemahkan setiap bagian dengan tangan, menjelaskan mengapa segmen tanda tangan bukan teks, dan menunjukkan apa yang dapat dan tidak dapat diberitahukan oleh dekoder kepada Anda.

String panjang di header Otorisasi — apa yang Anda lihat dan mengapa ia memiliki tepat dua titik

Token pembawa sering kali muncul di header Otorisasi sebagai string kompak yang dipisahkan titik. JWT bertanda khas dalam bentuk JWS yang ringkas memiliki tiga segmen dan oleh karena itu dua titik pemisah. Token aktif adalah kredensial: jangan tempelkan token produksi ke dalam demonstrasi.

Serialisasi ringkas — header, payload, dan tanda tangan sebagai tiga segmen url base64

Dalam serialisasi kompak JWS, segmen pertama adalah header yang dilindungi, segmen kedua adalah payload, dan segmen ketiga adalah tanda tangan atau MAC. Tanda tangan mencakup dua segmen pertama yang dikodekan, digabungkan dengan sebuah titik. Memisahkan string akan menemukan segmen; itu tidak bisa membangun kepercayaan.

Base64url tanpa padding — alfabet yang digunakan JWS dan mengapa segmen tidak memiliki tanda sama dengan di akhir

Base64url menggunakan - dan _ sebagai pengganti + dan / di Base64 biasa. Kompak JWS menghilangkan trailing = padding; dekoder dapat memulihkan padding sebelum mendekode. Decoding menghasilkan byte. Untuk header dan klaim JSON, dekode byte sebagai UTF-8 sebelum menguraikan teks.

Header — objek JSON kecil yang memberi nama algoritme dan, sering kali, kuncinya

Headernya biasanya JSON berisi alg dan terkadang pengenal kunci, Nak. Ini adalah pernyataan yang dibuat oleh token itu sendiri. Verifikator harus menerapkan kebijakan algoritma yang diperbolehkan dan secara aman mendapatkan kunci yang sesuai; membaca alg saja bukanlah otorisasi.

Payload — objek klaim JSON, dapat dibaca oleh siapa saja yang memegang token

Payload berisi klaim seperti sub, exp dan aud. Siapapun yang memegang token dapat membacanya; pengkodean bukan enkripsi. Sebuah exp NumericDate menghitung detik sejak zaman Unix, tetapi klaim yang belum diverifikasi tidak memiliki otoritas. Jangan menyimpan rahasia dalam muatan yang dapat dibaca.

Tanda tangan — byte mentah pada dua segmen pertama, tidak berarti sebagai teks dan tidak berguna tanpa kunci

Segmen terakhir adalah byte tanda tangan yang dikodekan dalam base64url, bukan objek JSON ketiga. Memvalidasinya memerlukan algoritma kriptografi, kunci dan kebijakan aplikasi. ToolAcre sengaja tidak melakukan verifikasi: ia melaporkan keberadaan tanda tangan dan selalu menandai tanda tanganTerverifikasi salah.

Contoh praktis — mendekode sampel token segmen demi segmen, termasuk JSON yang muncul

Ambil header demonstrasi yang tidak sensitif {"alg":"HS256","typ":"JWT"} dan payload {"sub":"demo"}. Pengkodean base64urlnya adalah eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 dan eyJzdWIiOiJkZW1vIn0. Penguraian kode memulihkan JSON. Menambahkan segmen ketiga secara sewenang-wenang tidak membuat token menjadi asli.

Kesimpulan: decoding adalah membaca, bukan mempercayai — decoder ToolAcre JWT menampilkan header dan payload dan tidak pernah memverifikasi tanda tangan, jadi tidak ada yang menunjukkan bukti bahwa token tersebut asli

Decoding adalah membaca, bukan mempercayai. Gunakan decoder ToolAcre JWT untuk header, klaim, dan peringatan token sekali pakai; gunakan pemverifikasi tepercaya aplikasi Anda untuk memutuskan apakah token yang ditandatangani valid. Klaim yang ditampilkan saja tidak boleh memberikan akses.