ByteCompress

JWT Decoder

JWT DecoderはJSON Web Token(RFC 7519)をブラウザ上でデコードするツールです。クライアントサイドで処理されるため、データは外部に送信されません。

0 chars
FreeClient-sideNo signup

JWT DecoderはJSON Web Tokenを安全にデコードし、ヘッダー、ペイロード、署名を解析します。RFC 7519準拠のトークンをbase64urlデコードし、UTF-8テキストに変換するためにTextDecoderを使用しています。ブラウザ内で動作するため、トークンデータは一切サーバーに送信されずプライバシーが保護されます。開発者がトークンの有効期限やクレームを素早く確認でき、関連ツールのBase64 DecodeJson Formatterと組み合わせて使うのに適しています。

使い方

  1. デコードしたいJWT文字列を入力欄に貼り付けます。
  2. ボタンを押すと、ヘッダー、ペイロード、署名が自動的に解析されます。
  3. ペイロードに含まれるsubissiatexpなどのクレームを確認します。
  4. トークンの有効期限が過ぎているかどうかも表示されます。
  5. 必要に応じて、Json FormatterでJSON構造を整形して閲覧できます。

動作原理

JWTは3つの部分(ヘッダー、ペイロード、署名)がドットで区切られたbase64urlエンコード形式です。JWT Decoderはまず各部分をbase64urlでデコードし、JavaScriptのTextDecoderを使ってUTF-8テキストに変換します。これにより日本語などの多バイト文字も正確に表示可能です。ヘッダーにはアルゴリズム(例:HS256)やタイプ(JWT)が含まれ、ペイロードには認証情報や有効期限がJSON形式で格納されています。署名は検証しませんので秘密鍵は不要です。完全にクライアントサイドで動作し、追加のライブラリや依存関係はありません。

使用例

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaXNzIjoiZXhhbXBsZS5jb20iLCJpYXQiOjE2MDAwMDAwMDAsImV4cCI6MTYwMDAwMzYwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

このJWTを入力すると、ヘッダーには{"alg":"HS256","typ":"JWT"}が表示され、ペイロードには{"sub":"1234567890","iss":"example.com","iat":1600000000,"exp":1600003600}が表示されます。expの値はUNIXタイムスタンプで、有効期限切れかどうかも判定されます。

利用シーン

  • 開発者がAPIトークンの構造や期限を確認する際
  • セキュリティ担当者がトークンの署名アルゴリズムを把握したい場合
  • デザイナーがユーザーデータを含むJWTの中身を検証するとき
  • SEOスペシャリストがJWTを使った認証の挙動を調査するとき
  • 学生が認証トークンの仕組みを学習するため

さらに、base64エンコードの詳細を調べたい時はBase64 Decode、JSONの見やすい表示にはJson Formatterを活用してください。

よくある質問

JWT Decoderは署名の検証も行いますか?

いいえ、JWT Decoderは署名の検証を行いません。トークンの署名部分は表示しますが、秘密鍵なしでの正当性チェックはできません。署名検証には専用のライブラリやサーバーサイド処理が必要です。

どのようなアルゴリズムのJWTに対応していますか?

JWT Decoderはヘッダー内のアルゴリズム名(例:HS256、RS256、none)を表示しますが、デコード処理自体はアルゴリズムに依存せず、base64urlデコードのみを行います。

トークンの有効期限はどのように判定していますか?
expクレームのUNIXタイムスタンプと現在時刻を比較して有効期限切れかどうかを判定します。タイムゾーンはUTC基準です。
JWT Decoderの処理はどこで実行されますか?

すべてのデコード処理はブラウザのJavaScript環境内で行われます。サーバーにはデータを送信しないため、トークンのプライバシーが保護されます。

JWTのペイロードに日本語が含まれていても正しく表示されますか?

はい。JWT DecoderはTextDecoderを使ってUTF-8エンコードを正確に復元するため、多バイト文字や日本語も正しく表示できます。