Penyahkod JWT
Nyahkod JSON Web Token (JWT) untuk melihat pengepala, muatan dan tandatangannya. Berguna untuk menyahpepijat dan memeriksa token JWT yang digunakan dalam pengesahan dan kebenaran. Kandungan JWT anda tidak akan disimpan di mana-mana.
Muatan (Claims):
Pengepala (Algoritma Tandatangan & Jenis Token):
Tandatangan:
Tandatangan dipaparkan sebagai data yang dikodkan Base64URL. Pengesahan tandatangan tidak dilakukan oleh alat ini.
Lebih Lanjut tentang JSON Web Tokens
Format JWT
JSON Web Token (JWT) adalah cara yang padat dan selamat URL untuk mewakili tuntutan yang dipindahkan antara dua pihak. Ia terdiri daripada tiga bahagian yang dikodkan Base64URL yang dipisahkan oleh titik: header.payload.signature. Header biasanya mengandungi jenis token (JWT) dan algoritma penandatanganan. Payload mengandungi tuntutan—pernyataan tentang entiti (biasanya pengguna) dan metadata tambahan. Tandatangan digunakan untuk mengesahkan bahawa mesej tidak diubah semasa perjalanan.
JOSE (JSON Object Signing and Encryption)
JWT adalah sebahagian daripada rangka kerja JOSE (JSON Object Signing and Encryption) yang lebih besar, yang menyediakan cara standard untuk mengamankan data berasaskan JSON. JOSE merangkumi beberapa spesifikasi berkaitan: JWS (JSON Web Signature) untuk token yang ditandatangani, JWE (JSON Web Encryption) untuk token yang disulitkan, JWK (JSON Web Key) untuk mewakili kunci kriptografi, dan JWA (JSON Web Algorithms) untuk menentukan algoritma kriptografi.
JSON Web Signature (JWS)
Kebanyakan JWT yang anda temui adalah token JWS—ditandatangani tetapi tidak disulitkan. Ini bermakna sesiapa sahaja boleh membaca payload dengan menyahkodnya dari Base64URL, tetapi mereka tidak boleh mengubahnya tanpa membatalkan tandatangan. JWS menyediakan integriti dan kesahihan: anda boleh mengesahkan bahawa token dikeluarkan oleh pihak yang dipercayai dan tidak diusik.
Algoritma Penandatanganan
JWS menyokong pelbagai algoritma kriptografi untuk menandatangani token. Ini terbahagi kepada dua kategori: algoritma simetri (kunci yang sama untuk penandatanganan dan pengesahan) dan algoritma asimetri (kunci peribadi untuk penandatanganan, kunci awam untuk pengesahan).
Algoritma HMAC (Simetri)
HS256, HS384, dan HS512 menggunakan HMAC (Hash-based Message Authentication Code) dengan SHA-256, SHA-384, atau SHA-512 masing-masing. Ini adalah algoritma simetri—kunci rahsia yang sama digunakan untuk menandatangani dan mengesahkan token. Algoritma HMAC pantas dan mudah tetapi memerlukan pengedaran kunci yang selamat kerana kedua-dua pihak memerlukan rahsia yang sama.
Algoritma RSA (Asimetri)
RS256, RS384, dan RS512 menggunakan RSASSA-PKCS1-v1_5 dengan SHA-256, SHA-384, atau SHA-512. PS256, PS384, dan PS512 menggunakan RSASSA-PSS (skim tandatangan kebarangkalian). Algoritma RSA menggunakan kunci peribadi untuk menandatangani dan kunci awam untuk mengesahkan. Ini membolehkan kunci pengesahan dikongsi secara awam tanpa menjejaskan keselamatan—ideal untuk sistem teragih di mana beberapa perkhidmatan perlu mengesahkan token.
Algoritma Lengkung Eliptik (Asimetri)
ES256, ES384, dan ES512 menggunakan ECDSA (Elliptic Curve Digital Signature Algorithm) dengan lengkung P-256, P-384, atau P-521 masing-masing. Algoritma EC menawarkan keselamatan yang sama seperti RSA tetapi dengan saiz kunci yang lebih kecil, menghasilkan tandatangan yang lebih kecil dan operasi yang lebih pantas. ES256 semakin popular untuk aplikasi moden kerana kecekapannya.
JSON Web Encryption (JWE)
Manakala JWS menyediakan token yang ditandatangani, JWE menyediakan token yang disulitkan di mana payload adalah sulit. Token JWE mempunyai lima bahagian dan bukannya tiga: header, kunci yang disulitkan, vektor permulaan, teks sifer, dan tag pengesahan. JWE menyokong pelbagai algoritma penyulitan termasuk AES-GCM dan AES-CBC dengan HMAC. Perhatikan bahawa penyahkod ini hanya mengendalikan token JWS; token JWE memerlukan penyahsulitan dengan kunci yang sesuai.
Spesifikasi RFC
Standard JWT dan JOSE ditakrifkan dalam beberapa RFC IETF: RFC 7519 mentakrifkan JSON Web Token (JWT), RFC 7515 mentakrifkan JSON Web Signature (JWS), RFC 7516 mentakrifkan JSON Web Encryption (JWE), RFC 7517 mentakrifkan JSON Web Key (JWK), dan RFC 7518 mentakrifkan JSON Web Algorithms (JWA).