JWT エンコード・署名
JSON形式のヘッダーとペイロード、シークレットキーからJWT(JSON Web Token)を生成・署名します。HS256・HS384・HS512のHMACアルゴリズムにWeb Crypto APIで対応し、すべてブラウザ上で完結します。
JWT エンコード・署名について
JWTの署名には大きく分けて共有鍵を使うHMAC方式(HS256など)と、公開鍵・秘密鍵のペアを使うRSA/ECDSA方式(RS256・ES256など)があります。HMAC方式は実装がシンプルな一方、検証側も同じ秘密鍵を持つ必要があるため、サーバー間など鍵を安全に共有できる環境向きです。
このツールはWeb Crypto API(crypto.subtle)を使ってHS256・HS384・HS512形式の署名をブラウザ内で計算するため、開発中のAPIテストで有効期限付きのトークンをその場で発行し、認証ヘッダーに貼り付けてすぐに動作確認する、といった使い方に向いています。
主な使い方
- 1開発環境でAPIテスト用のJWTを手軽に生成して認証ヘッダーに使う
- 2iat・expなどのクレームを指定した有効期限付きJWTをすばやく作成する
- 3HS256・HS384・HS512の違いによる署名結果の変化を確認する
- 4バックエンドのJWT検証ロジックのテストデータとして署名済みトークンを用意する
よくある質問
Q. 対応しているアルゴリズムは何ですか?
A. HMACベースのHS256・HS384・HS512に対応しています。RS256など公開鍵暗号方式の署名は対象外です。
Q. 入力したシークレットキーはサーバーに送信されますか?
A. いいえ。署名生成はブラウザのWeb Crypto API(crypto.subtle)で行われ、シークレットやペイロードが外部に送信されることはありません。また、プリセット保存や共有リンクにもシークレットは含まれません。
Q. iatやexpクレームを自動設定できますか?
A. はい。「iatを現在時刻に設定」ボタンや「expを◯分後に設定」ボタンから、ペイロードのタイムスタンプ系クレームを自動入力できます。
Q. 生成したJWTの正しさはどのように検証されていますか?
A. jwt.ioの公式サンプル(ヘッダー・ペイロード・シークレットが既知の例)と生成結果が完全一致することをユニットテストで検証しています。
関連ツール
- JWT デコードJWTトークンを貼り付けるだけでheader・payload・signatureに分解し、中身を見やすく表示します。有効期限(exp)が切れているかも確認でき、認証まわりのデバッグに便利。ブラウザ内で完結します。
- ハッシュ生成テキストからSHA-1・SHA-256・SHA-384・SHA-512のハッシュ値を生成します。チェックサムの照合や改ざん検知、キャッシュキーの作成などに便利。Web Crypto APIでブラウザ内で計算し、データは送信されません。
- Base64 エンコード・デコードテキストをBase64形式にエンコード、またはBase64文字列を元のテキストにデコードします。日本語などUTF-8の多バイト文字にも対応し、認証ヘッダーやデータの確認に便利。ブラウザ内で完結し、データは外部に送信されません。
- UUID生成UUID v4をワンクリックで生成します。最大20件までの一括生成にも対応し、データベースの主キーやテストデータの作成に便利。暗号学的に安全な乱数(crypto.randomUUID)を使い、ブラウザ内で完結します。
- パスワード生成大文字・小文字・数字・記号を組み合わせた安全なランダムパスワードを生成します。長さや使う文字種を指定でき、強度メーターで安全性も確認可能。暗号学的に安全な乱数を使い、ブラウザ内で完結します。
- QRコード生成テキストやURLをQRコードに変換し、PNG画像としてダウンロードできます。サイズや誤り訂正レベルを調整でき、名刺・チラシ・Webサイトへの掲載に便利。ブラウザ内で完結し、データは外部に送信されません。