Bahasa Indonesia

Alat pengembang · dekoder JWT

Cara Mendekode Payload JWT dengan Tangan Dengan base64 dan jq

· Cara kerjanya

jwt baris perintah alur kerja pengembang

Muatan JWT bergerak melalui tahap pembelahan shell, translasi, padding, dan JSON
Ilustrasi vektor ToolAcre asli

Pada kotak tanpa kepala Anda masih dapat membaca token dengan cut, tr, base64 dan jq. Posting ini memberikan perintah, menjelaskan konversi base64url yang dilakukan masing-masing, dan mencantumkan jebakannya.

Membaca token di SSH — saat browser bukan merupakan pilihan

Server tanpa kepala mungkin memberi Anda string berbentuk token dan tidak ada UI browser. Pekerjaan inspeksi yang diperlukan masih kecil: mengisolasi satu segmen, menerjemahkan ejaan base64url, memulihkan padding, mendekode byte, dan mengurai JSON. Bahayanya lebih bersifat operasional daripada komputasi karena riwayat shell dapat mempertahankan kredensial aktif.

Gunakan token yang kedaluwarsa atau sintetis bila memungkinkan. Jika respons insiden memerlukan pemeriksaan nilai sebenarnya, ikuti kontrol penanganan kredensial organisasi Anda, cegah nilai tersebut memasuki riwayat atau log bersama, dan putar nilai tersebut setelah paparan. Penguraian kode baris perintah tetap hanya untuk inspeksi; itu tidak memberikan kunci verifikasi atau kebijakan kepercayaan.

Memisahkan titik-titik — potong atau awk untuk mengisolasi segmen muatan

JWT berbentuk JWS yang ringkas memiliki tiga bidang yang dipisahkan titik. Muatannya adalah yang kedua. Sebuah shell dapat membaginya dengan alat yang sadar pembatas, tetapi mengutip variabel sehingga shell tidak memperluas karakter atau membagi spasi. Hapus label `Bearer ` di depannya sebelum memilih bidang karena awalan tersebut termasuk dalam sintaksis HTTP.

Hitung bidangnya daripada mengambil bidang kedua secara membabi buta. ToolAcre menolak apa pun selain tiga bagian dan secara terpisah mengidentifikasi masukan terenkripsi lima bagian. Pipa cangkang harus menerapkan kehati-hatian struktural yang sama; menerima segmen dari masukan yang salah dapat menghasilkan JSON yang masuk akal sambil menyembunyikan bahwa token asli telah terpotong.

Mengubah alfabet — tr untuk mengubah tanda hubung dan garis bawah kembali menjadi plus dan garis miring

Implementasi baris perintah standar Base64 biasanya mengharapkan tanda tambah dan garis miring ketika segmen JWT mungkin berisi tanda hubung dan garis bawah. Menerjemahkan `-` ke `+` dan `_` ke `/` memetakan simbol aman URL kembali ke posisi standarnya tanpa mengubah nilai enam bit yang diwakili.

Gunakan perintah terjemahan yang penguraian opsinya tidak dapat salah mengira tanda hubung di depan sebagai tanda, dan simpan data dalam variabel yang dikutip atau input standar. Konversi alfabet adalah pekerjaan pengkodean yang dapat dibalik. Itu tidak mendekripsi klaim, dan keberhasilan tidak membuktikan bahwa token tersebut berasal dari penerbit yang disebutkan.

Memulihkan padding — aritmatika yang menambahkan jumlah tanda sama dengan yang tepat

Setelah penerjemahan, hitung modulo panjangnya empat. Sisa nol tidak memerlukan tanda sama dengan, sisa dua memerlukan dua, dan sisanya tiga memerlukan satu. Sisanya menunjukkan pemotongan dan harus menghentikan pipa. Menambahkan padding sewenang-wenang hingga utilitas berhenti mengeluh dapat menyembunyikan kerusakan daripada mendiagnosisnya.

ToolAcre menggunakan aturan panjang ini dengan tepat di `base64ToBytes` dan menolak sisa yang mustahil. Utilitas Shell berbeda-beda dalam hal apakah mereka menerima padding yang dihilangkan, jadi normalisasi input terlebih dahulu membuat pipeline menjadi eksplisit dan portabel dalam konsepnya, meskipun tanda perintah masih dapat berbeda antar sistem operasi.

Decoding dan pencetakan cantik — base64 -d disalurkan ke jq

Masukkan nilai yang diisi ke dekoder Base64 platform, lalu ke `jq`. Perintah pertama memulihkan byte; yang kedua membutuhkan byte tersebut untuk membentuk JSON. Perintah Base64 yang berhasil diikuti dengan kesalahan penguraian jq berarti pengkodean dapat didekodekan secara struktural tetapi kontennya bukan muatan JSON.

Perbedaan tersebut mencerminkan jalur kesalahan ToolAcre. Pertama-tama melaporkan base64url atau UTF-8 yang tidak valid, lalu secara terpisah melaporkan JSON yang tidak valid, lalu menolak null, array, dan primitif karena header atau payload JWT harus menjadi objek untuk alat ini. Memisahkan tahapan membuat kegagalan dapat ditindaklanjuti.

Contoh praktis - alur lengkap pada token sampel, dengan keluaran di setiap tahap

Untuk contoh sintetis, segmen payload `eyJzdWIiOiJkZW1vIiwicm9sZSI6InJlYWRlciJ9` tidak memerlukan terjemahan alfabet atau padding. Penguraian kode menghasilkan `{"sub":"demo","role":"reader"}`, dan jq memformat objek lintas baris. Peran yang terlihat hanyalah string yang disediakan oleh token.

Sekarang ubah JSON, kodekan lagi dan lampirkan segmen ketiga mana pun. Alur masih mencetak objek yang diubah. Hal ini membuktikan mengapa perintah decode tidak dapat berfungsi sebagai pemeriksaan validitas: klaim yang sah dan dibuat-buat melewati transformasi publik yang sama kecuali pemverifikasi terpisah memeriksa tanda tangan.

Kesalahan — riwayat shell menangkap token, implementasi base64 yang menolak padding yang hilang, dan token dengan 'Pembawa' di depannya

Kegagalan umum termasuk mempertahankan awalan HTTP, memilih bidang yang dipisahkan titik yang salah, kehilangan karakter tambahan selama penyalinan, dan menggunakan implementasi Base64 yang memerlukan padding. Kendala lainnya adalah menempatkan seluruh token secara langsung pada baris perintah, sehingga daftar proses atau riwayat dapat menyimpannya.

Lebih memilih input standar dan variabel sementara di bawah kontrol yang sesuai, dan jangan pernah menempelkan token produksi ke dalam obrolan, tiket, atau terminal bersama demi kenyamanan. Ingat juga bahwa segmen ketiga adalah materi tanda tangan biner, bukan JSON, jadi mengirimkannya melalui jq akan gagal dan tidak memberi tahu Anda apa pun tentang validitas tanda tangan.

Kesimpulan: decoding yang sama, lingkungan apa pun — ketika Anda memiliki browser, decoder ToolAcre JWT melakukan ini secara lokal tanpa mengunggah apa pun

Pipa shell dan ToolAcre melakukan urutan decode saja yang sama di lingkungan yang berbeda: split, normalisasi, pad, decode UTF-8 dan parsing JSON. Gunakan lingkungan mana pun yang dapat Anda periksa dan kontrol, dengan data non-sensitif sebagai defaultnya.

Tidak ada jalur yang memverifikasi keaslian atau memberi otorisasi pada penelepon. Setelah membaca bentuk payload, pindah ke verifikator tepercaya layanan dan catat keputusan kriptografi dan kebijakan. Perintah yang menghasilkan JSON cantik telah menyelesaikan tugas pemformatan, bukan penilaian keamanan.