コンテンツにスキップ
Monu Tools

JWT生成

ペイロードとシークレットからHS256 JSON Web Tokenを生成・署名します。ブラウザ内で完結します。

JWT生成の使い方

  1. 01

    ペイロードをJSONオブジェクトとして編集します。

  2. 02

    HS256シークレットを入力します。

  3. 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デコードツールをご利用ください。

出典

問題を報告する