JWTデコーダー

JWTトークンを即座にデコードして、ヘッダー、ペイロード、署名を確認します。HMAC署名検証、有効期限チェック、履歴保存機能を提供します。

最終更新: 2026/01/26

JWTデコーダー

JWTトークン入力
署名検証(任意)
すべてのデータはブラウザ内で処理されます
最近の履歴 すべて削除
保存された履歴がありません

JWTトークンを入力すると自動でデコードされます

100%ブラウザ処理:入力したJWTとSecret Keyはサーバーに送信されません。

JWTデコーダーとは?

JWTデコーダーは、JSON Web Token(JWT)を分析し、その内部構造とデータを確認できる開発者ツールです。JWTはWebアプリケーションでユーザー認証や情報交換に広く使用される標準(RFC 7519)で、このツールを使用してトークンのヘッダー、ペイロード、署名を簡単に分析できます。

主な機能

  • リアルタイムデコード:JWTトークンを入力すると、即座にヘッダーとペイロードがJSON形式で表示されます。
  • 署名検証:HMACアルゴリズム(HS256、HS384、HS512)で署名されたトークンの有効性を検証できます。
  • 有効期限の確認:exp、iat、nbfなどの時間関連クレームを人間が読みやすい日付形式に変換します。
  • 履歴管理:最近デコードしたトークンを保存して、すぐに再確認できます。
  • 100%クライアント処理:すべてのデコードがブラウザで行われ、セキュリティが維持されます。

JWTの構造を理解する

JWTはドット(.)で区切られた3つの部分で構成されています:

  • ヘッダー(Header):トークンタイプ(typ)と署名アルゴリズム(alg)を指定します。例:{“alg”: “HS256”, “typ”: “JWT”}
  • ペイロード(Payload):クレーム(claims)と呼ばれる実際のデータを含みます。ユーザー情報、権限、有効期限などが含まれます。
  • 署名(Signature):ヘッダーとペイロードをエンコードした値を秘密鍵で署名した結果です。トークンの改ざん防止に使用されます。

主要なクレームの説明

JWTペイロードには、さまざまな標準クレームを含めることができます:

  • iss(Issuer):トークンを発行した主体を識別します。
  • sub(Subject):トークンの主題(通常はユーザーID)を表します。
  • aud(Audience):トークンの受信者を指定します。
  • exp(Expiration Time):トークンの有効期限です。この時間を過ぎるとトークンは無効になります。
  • nbf(Not Before):この時間より前はトークンが有効ではありません。
  • iat(Issued At):トークンが発行された時間です。
  • jti(JWT ID):トークンの一意の識別子です。

使い方

  1. JWTトークンを入力欄に貼り付けるか、サンプルボタンをクリックして例を確認します。
  2. トークンが入力されると、自動的にヘッダー、ペイロード、署名情報が表示されます。
  3. 署名検証が必要な場合は、Secret Key入力欄に秘密鍵を入力します。
  4. 時間関連のクレームは自動的に読みやすい日付形式に変換されます。
  5. 最近デコードしたトークンは履歴に保存され、後で再確認できます。

セキュリティ上の注意点

  • 機密情報に注意:JWTのペイロードは暗号化されず、Base64でエンコードされるだけです。機密情報はペイロードに含めないでください。
  • 署名検証は必須:本番環境では必ず署名を検証して、トークンの改ざんを防止する必要があります。
  • 有効期限の確認:expクレームを常に確認して、期限切れのトークンを使用しないようにします。
  • HTTPSの使用:JWTを送信する際は必ずHTTPSを使用して、トークンの盗難を防止してください。

よくある質問

JWTトークンとは何ですか?

JWT(JSON Web Token)は、二者間で安全に情報を伝達するためのオープン標準(RFC 7519)です。自己完結型(self-contained)方式で必要なすべての情報をトークン自体に含んでいるため、セッションストレージなしでユーザー認証が可能です。Webアプリケーションのログインシステム、API認証、SSO(シングルサインオン)などで広く使用されています。

JWTとセッションベース認証の違いは何ですか?

セッションベース認証はサーバーにユーザー情報を保存し、クライアントにはセッションIDのみを渡します。一方、JWTはすべての情報をトークン自体に含むため、サーバーの状態を維持する必要がありません(ステートレス)。これにより、JWTは分散システムやマイクロサービスアーキテクチャに適しており、サーバーのスケーリングが容易です。

JWTのデコードは安全ですか?

このJWTデコーダーは100%ブラウザで動作し、データはサーバーに送信されません。ただし、JWTのペイロードは暗号化されておらず、Base64でエンコードされているだけなので、誰でもデコードできます。そのため、パスワードやクレジットカード番号などの機密情報はJWTに含めてはいけません。

HS256、RS256などのアルゴリズムの違いは何ですか?

HS256(HMAC-SHA256)は対称鍵アルゴリズムで、署名と検証に同じ秘密鍵を使用します。RS256(RSA-SHA256)は非対称鍵アルゴリズムで、秘密鍵で署名し、公開鍵で検証します。HS256は実装が簡単で高速ですが、RS256は公開鍵を安全に配布できるため、マイクロサービス環境で有利です。

JWTトークンが期限切れになったらどうすればよいですか?

JWTが期限切れになったら、新しいトークンを取得する必要があります。一般的にはリフレッシュトークンを使用してアクセストークンを更新する方式が使われます。アクセストークンは短い有効期限(例:15分)を持ち、リフレッシュトークンは長い有効期限(例:7日)を持ちます。これにより、セキュリティとユーザー体験のバランスを取ることができます。

JWTはどこに保存すべきですか?

JWTはlocalStorage、sessionStorage、またはCookieに保存できます。localStorageは便利ですがXSS攻撃に脆弱です。HttpOnly Cookieは JavaScriptからアクセスできないため、より安全ですが、CSRF攻撃に対策が必要です。セキュリティが重要な場合は、HttpOnly、Secure、SameSite属性が設定されたCookieの使用をお勧めします。

署名検証はなぜ必要ですか?

署名検証は、JWTが改ざんされていないことを確認するプロセスです。悪意のあるユーザーがペイロードを変更すると、署名が一致しなくなります。サーバーは秘密鍵で署名を再計算し、トークンに含まれる署名と比較することで、トークンの整合性を検証します。このプロセスがなければ、誰でもトークンを変更して他のユーザーになりすますことができます。

お問い合わせ