JWT(JSON Web Token)解析デバッガー

秘密鍵を外部に一切送信することなく、JWTトークンのクレームとデータを安全に検証。

JWT(JSON Web Token)解析デバッガー

秘密鍵を外部に一切送信することなく、JWTトークンのクレームとデータを安全に検証。

使い方

1
テキストを入力または貼付
入力エリアに対象のテキストやコードを貼り付けます。
2
変換・解析を実行
整形、フィルタリング、変換などの処理を適用します。
3
結果をコピー
処理されたクリーンな結果をクリップボードにコピーします。
概念&ナレッジハブ

JWTデコーダー・署名検証ツール、Header/Payload解析と有効期限(exp)判定

JWT(JSON Web Token:RFC 7519)は、Webアプリケーションの認証、OAuth 2.0 / OpenID Connect(OIDC)、APIトークンのステートレスな受け渡しにおいて広く使われるコンパクトなURLセーフなトークン規格です。「ドット(.)」で区切られた3つのBase64Url文字列(ヘッダー・ペイロード・署名)で構成され、改ざん防止の暗号署名を内包しています。

例えばバックエンドエンジニアが認証エラーのバグ調査のため、eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...のようなエンコードされたJWT文字列を貼り付けたとします。ツールはトークンを即座に分解し、アルゴリズムを示すHeader(例: HS256 / RS256)と、ユーザーIDや権限クレームを含むPayloadを見やすいJSONツリーへとデコードします。さらにexp(有効期限)およびiat(発行日時)をローカル日時に変換し、「トークン有効(残り42分)」または「有効期限切れ(3時間前に失効)」のステータスバッジを瞬時に判定表示します。秘密鍵を入力すればHMAC-SHA256署名の正当性も検証可能です。

すべてのJWTパース、Base64Urlデコード、暗号署名検証処理は端末のブラウザ内部のJavaScriptエンジンでのみ実行されます。本番環境の認証トークン、ユーザー情報、検証用秘密鍵が外部サーバーに送信されることは絶対にありません。

コアアーキテクチャ&計算式

JWT構造: Base64Url(Header) . Base64Url(Payload) . Base64Url(Signature) ; 署名: HMAC-SHA256(Header + '.' + Payload, Secret)

Base64UrlデコードによりUTF-8 JSONオブジェクトを復元。Web Crypto APIを用いて秘密鍵からHMAC署名を再計算し、第三セグメントとバイナリ照合します。

ベストプラクティスと必須ガイドライン

  • JWTのペイロードに機密パスワードや個人情報を格納しない: JWTは「署名によって改ざんを検知」できるだけであり、暗号化されていないためBase64Urlを戻せば誰でも中身を閲覧できる点に注意してください。
  • アルゴリズム「none」攻撃(alg: none)の脆弱性を警戒: サーバー側の検証ロジックで署名なし(alg: none)トークンを不正に受理してしまわないよう、バックエンドで許可アルゴリズムを厳格に固定します。
  • 有効期限(expクレーム)の適切な短命化とリフレッシュトークン運用: アクセストークンの有効期間は15分〜1時間程度に短く設定し、漏洩時の被害ウィンドウを極小化してください。
  • ブラウザのLocalStorageへのアクセストークン保管のXSSリスク: XSS攻撃によるトークン窃取を防ぐため、可能な限りHttpOnly属性を付与したCookieでの受け渡しを推奨します。

よくある質問 (FAQ)

JWTをデコードするのに秘密鍵(Secret)は必要ですか?
中身の閲覧(HeaderとPayloadの確認)だけであれば秘密鍵は一切不要です。秘密鍵が必要になるのは、改ざんされていないかを確かめる「署名検証」の時のみです。
「exp」クレームに書かれた数字は何を意味していますか?
UNIXエポック(1970年1月1日00:00:00 UTC)からの経過秒数です。当ツールはこの数値を日本時間(JST)のわかりやすい日時に自動換算して表示します。
公開鍵暗号(RS256 / ES256)で署名されたトークンもデコードできますか?
はい。ヘッダーおよびペイロードのJSONデコードは、署名方式(対称鍵HS256か非対称鍵RS256/ES256か)を問わず完全に解析・閲覧可能です。
本番環境のセッショントークンを貼り付けても安全ですか?
完全に安全です。当ツールは100%クライアントサイドで動作し、トークン文字列や秘密鍵が外部サーバーへ送信されることは絶対にありません。