JWT デコーダー / エンコーダー

JWTトークンを即座にデコードして分析するか、署名付きJWTを生成します。完全クライアントサイド処理。

すべての処理はブラウザ内で完結します。データはサーバーに送信されません。

JWT(JSON Web Token)とは?

JWT(JSON Web Token)は、当事者間でJSONオブジェクトとして情報を安全に送信するためのオープン標準(RFC 7519)です。Webアプリケーションの認証や情報交換に広く使われています。JWTはBase64URLエンコードされているだけで暗号化ではないため、誰でもペイロードをデコードできます。暗号化なしで機密情報をJWTに含めないでください。

JWTの構造

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

HeaderPayloadSignature

Header

トークンの種類(typ)と署名アルゴリズム(alg、例:HS256、RS256)を含みます。

Payload

クレーム(Claims)を含みます。ユーザー情報と有効期限(exp)、発行日時(iat)、主体(sub)などのメタデータが格納されます。

Signature

ヘッダーとペイロードをシークレットキーで署名した値です。トークンが改ざんされていないことを検証するために使用されます。

主なクレーム

Claim主なクレーム
iss発行者
sub主体(ユーザーID)
aud受信者
exp有効期限
iat発行日時
nbf有効開始日時
jtiJWT 固有ID

よくある質問

JWTは暗号化されていますか?
いいえ。一般的なJWT(JWS)は署名されているだけで、暗号化はされていません。ペイロードはBase64URLエンコードされており、誰でもデコードできます。パスワードなどの機密情報をJWTペイロードに含めないでください。
署名の検証にシークレットキーが必要なのはなぜですか?
HMACベースの署名(HS256など)は共有シークレットを使用します。シークレットがなければ署名が正当かどうか確認できません。ペイロードのデコードと署名の検証は別の操作です。
expクレームがない場合、有効期限はありませんか?
exp がない場合、トークン自体は失効しません。サーバー側でトークンブロックリストなどの失効メカニズムを実装する必要があります。
HS256とRS256の違いは何ですか?
HS256は全当事者が共有する対称シークレットキーを使用します。RS256は非対称鍵ペア(秘密鍵で署名、公開鍵で検証)を使用し、マイクロサービスやサードパーティ検証に適しています。
JWTはどこに保存すべきですか?
XSS攻撃を防ぐHttpOnlyクッキーが推奨されます。localStorageへの保存は便利ですがXSSに脆弱です。
リフレッシュトークンとは何ですか?
リフレッシュトークンは、アクセストークンが期限切れになった後、再ログインなしで新しいアクセストークンを取得するための長期トークンです。
貼り付けたJWTはサーバーに送信されますか?
いいえ。すべてのデコードとエンコードはブラウザ内のJavaScriptのみで処理されます。サーバーには何も送信されません。

関連ツール