🎫JWTを貼り付け
■ヘッダー
■ペイロード
🔏署名の検証
デコードは鍵がなくてもできますが、そのトークンが本物かどうかは署名を検証しないと分かりません。 HMAC(HS256/384/512)は共有シークレット、RSA(RS256/384/512)は公開鍵で検証できます。
トークンの中身と有効期限をその場で確認・署名も検証
デコードは鍵がなくてもできますが、そのトークンが本物かどうかは署名を検証しないと分かりません。 HMAC(HS256/384/512)は共有シークレット、RSA(RS256/384/512)は公開鍵で検証できます。
JWTデコーダーは、JSON Web Token の中身を復号して表示するツールです。ドットで区切られた3つの部分をそれぞれ読み解き、有効期限が切れていないかまでその場で確認できます。
JWTは「ヘッダー」「ペイロード」「署名」を base64url でエンコードし、ドットでつないだ文字列です。base64url は暗号化ではないので、鍵がなくても中身は誰でも読めます。つまりJWTのペイロードに機密情報を入れてはいけません。署名が守っているのは「改ざんされていないこと」であって、「読まれないこと」ではありません。
このツールは復号だけでなく署名の検証にも対応しています。HMAC(HS256/384/512)ならシークレット、RSA(RS256/384/512)ならPEM形式の公開鍵を入力すると、そのトークンが本物かどうかを判定できます。入力したトークンも鍵もブラウザの外には出ません。
されていません。base64url は誰でも元に戻せる可逆な変換です。ブラウザの開発者ツールでも中身は読めるので、パスワードや個人情報をペイロードに入れないでください。中身を秘密にする必要がある場合は、JWE(暗号化されたJWT)を使うか、そもそもトークンに含めない設計にします。
UNIX時間(1970年1月1日からの経過秒数)です。ミリ秒ではなく秒である点に注意してください。このツールは自動的に日時へ変換し、現在時刻と比較して期限切れかどうかを表示します。値そのものを他の形式に変換したい場合はUNIX時間変換ツールをご利用ください。
署名は「ヘッダーとペイロードを鍵で計算した値」だからです。同じ鍵で計算しなおして一致すれば、その鍵を持つ発行者が作ったもので、途中で書き換えられていないと分かります。鍵がなければ、そのトークンが本物かどうかは判断できません。
署名なしという意味で、誰でもペイロードを書き換えられてしまいます。過去には、受け取ったトークンの alg をライブラリがそのまま信用してしまい、攻撃者が alg を none に書き換えて認証を回避できた脆弱性が複数報告されています。検証する側は、想定するアルゴリズムをサーバー側で固定してください。
現在このツールが対応しているのは HS256/384/512 と RS256/384/512 です。楕円曲線を使う ES 系には対応していません。デコード自体はアルゴリズムに関係なく行えます。
いいえ。復号も署名検証もブラウザ内の Web Crypto API で行っており、トークンも鍵も外部に送信されません。
アクセストークンの有効期限は短く(15分〜1時間程度)、長く使いたい場合は別途リフレッシュトークンを用意するのが一般的です。JWTはサーバー側に状態を持たないため、いったん発行すると期限が切れるまで無効化できません。ログアウトや権限剥奪を即座に反映したい場合は、失効リストを持つか、有効期限を十分に短くする必要があります。