JWT デコーダー

JSON Web Token のヘッダーとペイロードを表示し、有効期限を確認、HS256/384/512 署名を検証します。

読み込み中…

使い方

  1. 入力欄にトークンを貼り付けます。先頭の "Bearer " は無視されるので、Authorization ヘッダーの値をそのまま貼り付けられます。
  2. デコードされたヘッダーとペイロードを確認します。各見出しの横のコピーボタンで整形済みの JSON をコピーできます。
  3. ペイロードに exp があると、上部に「期限切れ」または「期限切れ前」と残り・経過時間が 1 秒ごとに更新されて表示されます。
  4. 表で iat(発行)・nbf(有効開始)・exp(有効期限)を、現地のタイムゾーンの日時と相対時間で確認します。
  5. 署名の下の「秘密鍵(HMAC)」欄に秘密鍵を入力すると、HS256・HS384・HS512 トークンの署名が正しいかどうかが表示されます。

よくある質問

デコードできれば有効なトークンですか?
いいえ。ヘッダーとペイロードは Base64URL でエンコードされているだけなので、誰でも読めますし作ることもできます。正しい鍵で署名が確認でき、alg・exp・nbf・iss・aud がサービスの想定どおりの値であるときに限り信頼できます。このツールでは HS256/384/512 のトークンに秘密鍵を入力して署名を確認できます。
どの署名アルゴリズムを検証できますか?
HMAC 方式の HS256・HS384・HS512 のみです。RS256・ES256・PS256 などの公開鍵方式には発行者の公開鍵が必要ですが、このツールは公開鍵を受け付けないため、デコードだけを行います。秘密鍵は入力した文字列のまま(UTF-8)使い、Base64 エンコードされた鍵をデコードしてから使うことはしません。
iat・nbf・exp はどう解釈されますか?
1970-01-01 UTC からの秒数として読み、現地のタイムゾーンで表示します。数値でない値は表に表示されません。「期限切れ/期限切れ前」の表示は exp だけで判断するので、まだ使えるトークンかどうかは nbf を別に確認してください。
「正しい JWT ではありません」と表示されるのはなぜですか?
ドット(.)で区切られた 3 つの部分が必要で、最初の 2 つは Base64URL でエンコードされた JSON オブジェクトでなければなりません。暗号化されたトークン(JWE、5 つの部分)や、途中で切れたり誤ってコピーされたりしたトークンはデコードできません。
トークンや秘密鍵はサーバーに送信されますか?
いいえ。デコードも検証もブラウザ内で行い、トークンと秘密鍵をサーバーやほかの場所に送ることはありません。