JWTデコード:トークンの中身と署名を確認
JWTデコードは、トークンを貼り付けるだけでJSON Web Tokenのヘッダー・ペイロード・署名と、発行者・有効期限・有効かどうかをわかりやすく表示します。秘密鍵や公開鍵を入力すれば署名の検証もできます。トークンがブラウザの外に出ることはありません。
出典:§§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT)。更新日:
計算方法
JSON Web Token(JWT)は、2者の間で情報(クレーム)を運ぶ仕組みで、ログイン後に「このユーザーはログイン済み」という証明としてよく使われます。ピリオドで区切った3つの部分 ヘッダー.ペイロード.署名 からなります(RFC 7519、RFC 7515)。
JWTをデコードする手順
- 上の欄にトークンを貼り付けます(「Bearer」付きでも可)。
- ヘッダーとペイロードが読みやすいJSONで表示され、その下に有効期限と発行者が出ます。
- 任意:「秘密鍵または公開鍵」の欄に鍵を入れると、署名を検証します。
トークンの中身
- ヘッダー:アルゴリズム(
alg、例:HS256、RS256)と種類(typ)。 - ペイロード:クレーム。登録済みのものに
iss(発行者)、sub(主体)、aud(対象者)、exp(有効期限)、nbf(有効開始)、iat(発行日時)、jti(ID)があります。日時は1970年からの秒数で、このツールはUTCの日時で表示します。 - 署名:受け取る側が正しい鍵で検証すれば、改ざんを防げます。
重要:読めることと検証は別
ヘッダーとペイロードはbase64urlでエンコードされているだけで、暗号化されていません。トークンを見た人は誰でも読めるので、パスワードなどの秘密は入れないでください。署名を検証しなければ、内容は誰でも書き換えられるため何の証明にもなりません。ここでの検証はHMACの秘密鍵(HS256/384/512)と公開鍵(RS、PS、ES)に対応し、alg: none のトークンは署名なしです。
アルゴリズム混同攻撃への対策
知られている攻撃では、公開鍵を秘密鍵として alg: HS256 で署名したトークンをサーバーに渡します。そのためこのツールは、HSの秘密鍵の欄に公開鍵や秘密鍵の一部が入力された場合、検証を拒否します(RFC 8725は、アルゴリズムをトークンだけから決めないよう勧めています)。
制限事項
- 暗号化されたトークン(JWE、5つの部分)は鍵なしでは読めず、ヘッダーだけを表示します。
- EdDSAと証明書の検証には対応していません。トークンが自分のアプリで有効かどうかは、発行者・対象者・有効期限によって決まり、サーバー側で確認する必要があります。
- 本番のトークンは信頼できる端末でだけ扱ってください。ここでは送信も保存もしませんが、期限切れやテスト用のトークンのほうが安全です。
よくある質問
JWTとは何ですか?
JSON Web Tokenは、ヘッダー・ペイロード・署名の3つの部分からなる、URLに安全に載せられる短い文字列です。ユーザーIDや有効期限などのクレームを運び、ログイン後の証明としてよく使われます。
JWTの中身は誰でも読めますか?
はい。ヘッダーとペイロードはbase64urlでエンコードされているだけで、暗号化されていません。署名は改ざんを防ぎますが、読まれることは防げません。JWTに秘密の情報は入れないでください。
JWTの署名を検証するには?
「秘密鍵または公開鍵」の欄に、HS256/384/512なら秘密鍵、RS256・PS256・ES256ならPEMまたはJWK形式の公開鍵を入力します。結果は「署名」の欄に表示されます。
オンラインのデコーダーにトークンを貼っても安全ですか?
このデコーダーはすべてブラウザ内で動作し、何も送信しません。ただし有効なトークンはアクセスの証明です。できるだけテスト用や期限切れのトークンを使ってください。
exp、iat、nbfとは何ですか?
exp はトークンの有効期限が切れる時刻、iat は発行された時刻、nbf は有効になる時刻です。いずれも1970年1月1日UTCからの秒数です。
「未検証」と表示されるのはなぜですか?
鍵がないと署名を照合できないため、内容は読み取るだけになります。非対応のアルゴリズムや、合わない鍵の形式でも検証は行われません。
出典・根拠
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
更新日: · 編集方針
関連ツール
- Base64エンコード・デコードBase64・Base64urlのエンコードとデコードをUTF-8で正しく変換。日本語も文字化けしません。URLエンコード・デコードにも対応した無料ツールです。
- ハッシュ生成:SHA-256・SHA-512・SHA-1・MD5テキストやファイルのSHA-256、SHA-512、SHA-1、MD5ハッシュを生成し、チェックサムを照合できます。ブラウザー内で計算、アップロード不要です。
- JSON整形・フォーマットチェック(構文チェック・圧縮)JSONを貼り付けるだけで整形・構文チェック。エラーの行と列を日本語で表示し、インデント整形、1行に圧縮、キーの並べ替えもブラウザ内で完結します。
- UNIX時間(Unixtime)変換ツールUNIX時間(タイムスタンプ)を日時に、日時をUNIX時間に変換します。秒・ミリ秒(13桁)・マイクロ秒・ナノ秒を自動判別し、日本時間とUTCを表示。
- UUID生成ツール:UUID v4・v7の生成と検証UUIDをオンラインで生成できる無料ツールです。v4(ランダム)とv7(時刻順)を最大1,000個まで一括生成。UUIDのバージョンや日時も解析できます。
- パスワード生成ツールパスワード生成ツール(無料)。ランダムで安全なパスワードや覚えやすいパスフレーズを作成し、強度をビット数で表示。生成はブラウザ内で完結、送信も保存もされません。
- IPアドレス確認IPアドレス確認サイト。あなたのグローバルIPアドレス(IPv4・IPv6)をすぐに表示し、おおよその地域とプロバイダーもわかります。無料で、IPアドレスは保存しません。
- 欧文フォントの組み合わせ(見出し+本文)欧文フォント 組み合わせ:見出しと本文の英語フォントのペア8組をその場でプレビュー。x-ハイト、OSごとの表示、コピーできるCSSつき。Webフォント不要です。
- IEEE754変換ツールIEEE754変換ツール。half・single・doubleに対応し、10進数・16進数・ビット列を相互に変換して、符号・指数部・仮数部と正確に保存される値を表示します。