JWTデコーダー
JWT Decoder
ヘッダーとペイロードを復号し、期限のクレームを現地時刻で見せ、渡した鍵で署名も検証します。
JSON Web Tokenを復号し——ヘッダー、ペイロード、署名——標準のクレームがそれぞれ何を意味するのかを説明し、共有の秘密鍵、貼り付けた鍵、あるいは発行者のJWKSで署名を検証できます。すべてタブの中で起きます。トークンそのものは、どこへも送られません。
トークンはこのタブに留まります。
デコードも署名の検証も、ブラウザの中でWebCryptoを使って行います。何もアップロードせず、このページにサーバー側はありません。唯一出しうるリクエストは、あなたが入力したJWKS URLへのGETひとつだけで、そのリクエストに載るのはそのURLだけです。トークンもシークレットも決して載りません。
トークン
先頭の `Bearer ` は自動で取り除きます。
使い方
トークンを貼り付けます
先頭の`Bearer `は自動で外します。ヘッダー、ペイロード、署名がすぐに分かれます。押すボタンはありません。
まずステータスの行を見ます
期限切れか、まだ有効になっていないか、有効期間の中か。手元の時計に対して計算します。ペイロードの表にある時刻のクレームは、ISOの表記、現地時刻、そして生のエポック秒を並べて表示します。
必要なら署名を検証します
HS256/384/512には共有の秘密鍵を、非対称のアルゴリズムにはJWKSのURLか貼り付けた鍵を使います。復号は、本物であることを何も証明しません。証明するのは署名の検証だけです。
よくある質問
本番のトークンをここに貼り付けても大丈夫ですか
トークンはブラウザの中で復号され、送信されることはありません。このページにサーバー側はありません。唯一行いうる通信は、入力されたJWKSのURLへのGETで、それが運ぶのはそのURLだけです。とはいえ、ブラウザのタブの中にあるトークンは画面に出ているトークンなので、パスワードと同じように扱ってください。
誰でもペイロードを読めるのですか
読めます。JWTは署名されているのであって、暗号化されてはいません。ペイロードはBase64URLで、それは符号化です。URLに入れたくないものは、JWTにも決して入れないでください。このページが1回の貼り付けで示しているのが、まさにそれです。
署名が検証できました。トークンは大丈夫ということですか
その鍵を持っている誰かが署名し、それ以降改変されていない、という意味です。有効期限についても、対象者についても、発行者についても、失効についても、何も言っていません。有効期限はステータスの行が扱います。残りはアプリケーションの仕事です。
ES256KやEd448のトークンを確認できないのはなぜですか
検証にブラウザのWebCryptoを使っていて、それらの曲線が入っていないからです。ブラウザにできるのは、HS・RS・PS・ESの256/384/512と、Ed25519です。それ以外は、黙って通すのではなく、確認できないものとして報告します。
ここから渡せます
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
JWKSによる署名検証
JWKS Verifier
JWKSのエンドポイントから鍵を取り、kidで選んで、トークンの署名と標準クレームを検証します。
HMAC生成
HMAC Generator
ハッシュの種類と鍵の符号化を決めてメッセージのHMACを計算し、Webhookの署名確認に使えます。
UNIXタイムスタンプ変換
Unix Timestamp Converter
エポック秒・ミリ秒・ISO 8601・人が読む日時を、任意のタイムゾーンで相互に変換します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
UNIXタイムスタンプ変換
Unix Timestamp Converter
エポック秒・ミリ秒・ISO 8601・人が読む日時を、任意のタイムゾーンで相互に変換します。
JWKSによる署名検証
JWKS Verifier
JWKSのエンドポイントから鍵を取り、kidで選んで、トークンの署名と標準クレームを検証します。
鍵ペア生成
Key Pair Generator
RSA・ECDSA・Ed25519の鍵ペアを作り、PEM・JWK・OpenSSHで書き出します。
JSON⇄CSV変換
JSON ⇄ CSV
入れ子のJSONをドット記法の列名で平らに開くか、表からオブジェクトを組み直します。
JSON差分比較
JSON Diff
キーの順序を無視して2つのJSONを構造で比べ、追加・削除・変更されたパスを挙げます。