Bahasa Melayu

Alat pembangun · JWT penyahkod

Cara Menyahkod JWT Muatan dengan Tangan Dengan base64 dan jq

· Bagaimana ia berfungsi

jwt baris arahan aliran kerja pembangun

Muatan JWT bergerak melalui pemisahan cangkerang, terjemahan, padding dan JSON peringkat
Ilustrasi vektor ToolAcre asal

Pada kotak tanpa kepala anda masih boleh membaca token dengan cut, tr, base64 dan jq. Siaran ini memberikan arahan, menerangkan penukaran base64url yang dilakukan oleh setiap orang, dan menyenaraikan masalah.

Membaca token atas SSH — apabila pelayar bukan pilihan

Pelayan tanpa kepala mungkin meninggalkan anda dengan rentetan berbentuk token dan tiada UI pelayar. Kerja pemeriksaan yang diperlukan masih kecil: asingkan satu segmen, terjemah ejaan base64url, memulihkan padding, nyahkod bait dan menghuraikan JSON. Bahayanya adalah beroperasi dan bukannya pengiraan kerana sejarah shell boleh mengekalkan bukti kelayakan langsung.

Gunakan token tamat tempoh atau sintetik apabila boleh. Jika tindak balas insiden memerlukan pemeriksaan nilai sebenar, ikuti kawalan pengendalian kelayakan organisasi anda, halangnya daripada memasuki sejarah atau log yang dikongsi dan putarkannya selepas pendedahan. Penyahkodan baris arahan kekal sebagai pemeriksaan sahaja; ia tidak membekalkan kunci pengesahan atau dasar amanah.

Membelah pada titik — potong atau awk untuk mengasingkan segmen muatan

JWS berbentuk JWT padat mempunyai tiga medan dipisahkan titik. Muatan adalah yang kedua. Cangkang boleh membelahnya dengan alat yang menyedari pembatas, tetapi sebutkan pembolehubah supaya cangkerang tidak mengembangkan aksara atau memisahkan ruang kosong. Alih keluar label `Bearer ` terkemuka sebelum memilih medan kerana awalan itu tergolong dalam sintaks HTTP.

Hitung bidang daripada mengambil bidang dua secara membabi buta. ToolAcre menolak apa-apa selain daripada tiga bahagian dan secara berasingan mengenal pasti lima bahagian input yang disulitkan. Talian paip shell harus menggunakan struktur yang sama berhati-hati; menerima segmen daripada input yang tidak betul boleh menghasilkan JSON yang munasabah sambil menyembunyikan bahawa token asal telah dipotong.

Menukar abjad — tr untuk menukar tanda sempang dan garis bawah kembali menjadi tambah dan sengkang

Pelaksanaan baris arahan standard Base64 biasanya menjangkakan tambah dan slash di mana segmen JWT mungkin mengandungi sempang dan garis bawah. Menterjemah `-` kepada `+` dan `_` kepada `/` memetakan simbol URL-selamat kembali ke kedudukan standardnya tanpa mengubah nilai enam bit yang diwakili.

Gunakan arahan terjemahan yang penghuraian pilihannya tidak boleh menyalahkan tanda sempang utama sebagai bendera, dan simpan data dalam pembolehubah yang dipetik atau input standard. Penukaran abjad ialah kerja pengekodan boleh balik. Ia tidak menyahsulit tuntutan, dan kejayaan tidak membuktikan bahawa token itu datang daripada pengeluar yang dinamakan.

Memulihkan padding — aritmetik yang menambah bilangan tanda sama yang betul

Selepas terjemahan, hitung panjang modulo empat. Baki sifar tidak memerlukan tanda yang sama, baki dua memerlukan dua, dan baki tiga memerlukan satu. Baki satu menunjukkan pemotongan dan harus menghentikan saluran paip. Menambahkan padding sewenang-wenangnya sehingga utiliti berhenti mengadu boleh menyembunyikan kerosakan dan bukannya mendiagnosisnya.

ToolAcre menggunakan peraturan panjang ini dalam `base64ToBytes` dan menolak baki yang mustahil. Utiliti shell berbeza-beza sama ada mereka menerima padding yang ditinggalkan, jadi menormalkan input terlebih dahulu menjadikan saluran paip itu jelas dan mudah alih dalam konsep, walaupun bendera arahan masih boleh berbeza antara sistem pengendalian.

Menyahkod dan mencetak cantik — base64 -d disalurkan ke dalam jq

Paipkan nilai empuk ke penyahkod Base64 platform dan kemudian ke `jq`. Perintah pertama memulihkan bait; yang kedua memerlukan bait tersebut untuk membentuk JSON. Perintah Base64 yang berjaya diikuti dengan ralat parse jq bermakna pengekodan boleh dinyahkod secara struktur tetapi kandungannya bukan muatan JSON.

Perbezaan itu mencerminkan laluan ralat ToolAcre. Mula-mula ia melaporkan base64url atau UTF-8 yang tidak sah, kemudian secara berasingan melaporkan JSON yang tidak sah, kemudian menolak null, tatasusunan dan primitif kerana pengepala atau muatan JWT mestilah objek untuk alat ini. Menyimpan peringkat berasingan menjadikan kegagalan boleh diambil tindakan.

Contoh yang berkesan — saluran paip penuh pada token sampel, dengan output pada setiap peringkat

Untuk contoh sintetik, segmen muatan `eyJzdWIiOiJkZW1vIiwicm9sZSI6InJlYWRlciJ9` tidak memerlukan terjemahan abjad atau pelapik. Penyahkodan menghasilkan `{"sub":"demo","role":"reader"}` dan format jq yang membantah merentas baris. Peranan yang boleh dilihat hanyalah rentetan yang dibekalkan oleh token.

Sekarang ubah JSON, kodkannya semula dan lampirkan mana-mana segmen ketiga. Saluran paip masih mencetak objek yang diubah. Ini membuktikan sebab perintah nyahkod tidak boleh berfungsi sebagai semakan kesahihan: tuntutan sah dan palsu merentasi transformasi awam yang sama melainkan pengesah berasingan menyemak tandatangan.

Perangkap — sejarah shell yang menangkap token, pelaksanaan base64 yang menolak padding yang hilang, dan token dengan 'Pembawa' terkemuka

Kegagalan biasa termasuk mengekalkan awalan HTTP, memilih medan dipisahkan titik yang salah, kehilangan aksara mengekor semasa menyalin dan menggunakan pelaksanaan Base64 yang memerlukan pelapik. Satu lagi perangkap ialah meletakkan keseluruhan token terus pada baris arahan, di mana penyenaraian proses atau sejarah mungkin mengekalkannya.

Lebih suka input standard dan pembolehubah sementara di bawah kawalan yang sesuai, dan jangan sekali-kali menampal token pengeluaran ke dalam sembang, tiket atau terminal kongsi untuk kemudahan. Ingat juga bahawa segmen ketiga ialah bahan tandatangan binari dan bukannya JSON, jadi menghantarnya melalui jq sepatutnya gagal dan tidak memberitahu anda apa-apa tentang kesahihan tandatangan.

Bawa pulang: penyahkodan yang sama, mana-mana persekitaran — apabila anda mempunyai pelayar, penyahkod ToolAcre JWT melakukan perkara ini secara setempat tanpa sebarang muat naik

Saluran paip cangkerang dan ToolAcre melakukan urutan penyahkodan sahaja yang sama dalam persekitaran yang berbeza: belah, normalkan, pad, nyahkod UTF-8 dan parse JSON. Gunakan mana-mana persekitaran yang anda boleh periksa dan kawal, dengan data tidak sensitif sebagai lalai.

Kedua-dua laluan tidak mengesahkan ketulenan atau membenarkan pemanggil. Selepas membaca bentuk muatan, beralih ke pengesah dipercayai perkhidmatan dan log untuk keputusan kriptografi dan dasar. Perintah yang menghasilkan JSON yang cantik telah menyelesaikan tugas pemformatan, bukan penghakiman keselamatan.