JWTデコーダー
JSON Web Tokenのヘッダーとペイロードをデコードします。トークンが外部に送信されることはありません
ツールを読み込んでいます…
JSON Web Tokenをデコードします。貼り付けるとヘッダーとペイロードがJSONで表示され、有効期限などの時刻のクレームは読みやすい日時に変換されます。ログインやAPI呼び出しが失敗したときに、トークンの中身と期限切れかどうかを確認するのに使えます。
使い方
- eyJで始まるJWTを「トークン」に貼り付けます。先頭の「Bearer 」は無視されます。
- 「ヘッダー」と「ペイロード」のJSON、および「署名」の部分を確認します。
- 「クレーム」の表で、発行日時と有効期限、そして「期限切れ」や「有効」などの状態を確認します。
- トークンが信頼できるか確認するには、「署名を検証(任意)」に秘密鍵または公開鍵を入力します。
計算方法と補足
- JWTはドットで区切られた3つの部分(header.payload.signature)でできています。最初の2つはBase64urlでエンコードされたJSONなので、鍵がなくても読めます。exp、nbf、iatは1970年1月1日(UTC)からの秒数です。
- 検証には、HS、RS、PS、ES(256/384/512)ではWeb Cryptoを使い、ブラウザが対応していればEdDSAも使えます。公開鍵はPEM、証明書、JWK、JWKSで指定できます。alg が "none" のトークンには警告が表示されます。
- デコードと検証はブラウザ内で行われ、トークンと鍵は保存も送信もされません。それでも、本番システムのトークンではなく、テスト用や期限切れのトークンを使うことをおすすめします。
よくある質問
- JWTの有効期限を確認するには?
- トークンを貼り付けます。「クレーム」の表の「有効期限」(exp)に日時が表示され、状態の列に残り時間または「期限切れ」が表示されます。
- JWTは暗号化されていますか?
- 通常のJWT(JWS)は署名されているだけで暗号化されていないため、誰でも中身を読めます。パスワードなどの秘密情報は入れないでください。5つの部分からなるトークンは暗号化されたJWEで、鍵がないと読めません。
- デコードできればトークンが本物だと言えますか?
- いいえ。中身は誰でも書き換えられるため、信頼できるのは正しい鍵で検証した署名だけです。「署名を検証(任意)」に鍵を入力すると、「署名は有効」または「署名が無効」と表示されます。