JWT生成
ペイロードとシークレットからHS256 JSON Web Tokenを生成・署名します。ブラウザ内で完結します。
JWT生成の使い方
- 01
ペイロードをJSONオブジェクトとして編集します。
- 02
HS256シークレットを入力します。
- 03
生成して署名済みトークンをコピーします。
ブラウザでトークンに署名する
Web Crypto API を使用してブラウザ内でペイロードとシークレットから JSON Web トークンを構築して署名する JWT ジェネレーター。これは、既存のトークンを検査する JWT デコーダーと組み合わせます。
JWT の組み立て方
JWT には、ヘッダー、クレームのペイロード、署名というドットで区切られた 3 つの部分があり、それぞれ Base64url でエンコードされています。署名はトークンを信頼できるものにするものであり、ペイロードが変更されておらず、秘密を保持する誰かによって発行されたことを証明します。
HS256とあなたの秘密
このツールは、HS256、つまり最も一般的な対称 JWT アルゴリズムである SHA-256 を使用した HMAC で署名します。同じシークレットがトークンの署名と検証の両方を行うため、サーバー上で秘密にしておく必要があります。
HS256 の場合は、長いランダムなシークレットを使用します。短いシークレットや推測可能なシークレットは、それを推測した人が自分自身の有効なトークンを鋳造できるため、トークン全体を損ないます。
暗号化ではなくエンコードされる
JWT に関する重要な点: ペイロードはエンコードされるだけであり、暗号化されません。トークンを持っている人は誰でも、そのクレームを Base64 でデコードすることで読み取ることができるため、パスワードや機密データを JWT に入れないでください。署名は改ざんを阻止しますが、機密性を提供するものではありません。
セキュリティメモ
署名はローカルで行われるため、シークレットとペイロードがデバイスの外に出ることはありません。それでも、実際の本番環境のシークレットを共有または公共のコンピューターに貼り付けることは避けてください。
よくある質問
どのアルゴリズムが使われますか?
最も一般的な対称JWTアルゴリズムであるHS256(HMAC with SHA-256)を使用し、ブラウザのWeb Crypto APIで署名します。
シークレットはどこかに送信されますか?
いいえ。署名はブラウザ内で完結するため、シークレットとペイロードがデバイスの外に出ることはありません。ただし、共有コンピューターでは本番環境のシークレットを使用しないでください。
トークンのデコードもできますか?
はい。既存トークンのヘッダーとペイロードを確認するにはJWTデコードツールをご利用ください。