JWT デコーダー・検証ツール
あなたのツールにピン留めJSON Web Token をデコードし、有効期限やクレームを確認し、シークレットや公開鍵で署名を検証できます。
すべてブラウザ内で実行されます。入力した内容が当社のサーバーに送信されることはありません。
ペイロード
HS256/384/512 にはシークレット、それ以外には PEM(SPKI または証明書)形式の公開鍵、または JWK か JWKS(トークンの kid でキーを選びます)。キーが共有・保存されることはありません。
履歴 · 0
処理した入力は、このページを開いている間ここに表示されます。ページを再読み込みすると消去されます。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')
console.log(JSON.stringify(JSON.parse(json), null, 2))概要
JSON Web Token をデコードしてヘッダーとペイロードを読み取り、期限切れかどうかを確認し、シークレットまたは公開鍵で署名を検証します。トークンはブラウザ内でデコードされ、このページには広告が表示されず、トークンと鍵が共有や保存されることはありません。
使い方
- トークンを貼り付けます。先頭の
Bearerと改行は無視されます。 - ペイロードを、整形またはコンパクトな JSON として読みます。その下には、アルゴリズム、状態、そして
exp、nbf、iatの時刻と、それぞれが現在からどれだけ離れているかが表示されます。 - 署名を検証するには、鍵を入力します。HS256、HS384、HS512 にはシークレット、RS、PS、ES、EdDSA には公開鍵(PEM または JWK)を使います。
- ヘッダーとペイロードを JSON とクレームで切り替えます。クレームでは各クレームの意味が一覧になり、時刻のクレームは日付で表示されます。
- エンコードタブを開くと、ヘッダーとペイロードを書き、シークレットまたは秘密鍵(PKCS#8 PEM または JWK)で署名できます。このタブの内容は保存・共有・履歴への追加が行われません。
例
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
このトークンのペイロードです。
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
署名は、シークレット your-256-bit-secret で検証できます。
知っておくと便利なこと
- デコードは検証ではありません。ペイロードはエンコードされているだけで暗号化されておらず、誰でも読めます。
- クレームを信頼する前に、サーバー側で署名を検証してください。
- アルゴリズムが
noneのトークンは署名がないため、誰でも作れます。 - 有効なトークンはパスワードと同じように扱ってください。ここに貼り付けるなら、期限切れのトークンやテスト用のトークンをおすすめします。
- 貼り付けた JWKS からはトークンの
kidで鍵を探し、単独の JWK はそのまま使います。このページがトークンの発行者からキーセットを取得することはありません。 - ハッシュより短い HMAC シークレット(32、48、64 バイト)は推測される恐れがあるため、警告が表示されます。シークレットは UTF-8 テキストまたは Base64URL として読めます。
JWT とは?
JSON Web Token は、ドットでつないだ3つの Base64URL 部分です。署名アルゴリズムを示すヘッダー、誰向けのトークンか・いつ期限が切れるかなどのクレームを持つペイロード、そして署名です。最初の2つは誰でも読めますが、鍵の持ち主から来たトークンであることを証明できるのは署名だけです。
よくある質問
デコードと検証は同じ?
いいえ。デコードは暗号化されていない中身を読むだけです。検証は鍵で署名を確認する処理で、サーバーはクレームを信頼する前に必ず行う必要があります。
exp、nbf、iat とは?
exp は期限切れの時刻、nbf はそれより前は無効となる時刻、iat は発行時刻で、いずれも1970年からの秒数です。このツールはお使いの端末の時計と比較します。
本物のトークンを貼り付けても安全?
トークンはブラウザ内でデコードされ、当社のサーバーに送信されることはなく、このページに広告もありません。それでも有効なトークンはパスワードと同様に扱い、期限切れやテスト用のものを使うのがおすすめです。