使い方
JWK(1 個の鍵の JSON)か JWKS({"keys":[…]})を入力欄に貼り付けます。PEM(-----BEGIN…)を貼ると、PEM から JWK に変換する操作になります。
鍵ごとに kty・kid・alg・曲線・鍵長・公開か秘密か・JWK Thumbprint が表に出ます。問題は鍵の行の下に、理由と該当するメンバー名つきで並びます。
「変換」で、選んだ鍵を PEM にしたり、秘密の値を除いた公開鍵の JWK にしたりできます。JWKS 全体は公開用にまとめ、kid がない鍵には thumbprint を kid として付けます。
秘密鍵を含む入力や出力は既定で伏せます。「表示」で見えるようにできます。
結果はコピーするか保存します。新しく鍵を作る場合は、暗号・ハッシュツールを使います。
できること
JWK と JWKS を 1 画面で検査
RSA・EC・OKP(Ed25519 など)・oct を判別し、kid・use・key_ops・alg・曲線・鍵長・公開か秘密かを鍵ごとに表にします。
RFC に沿った検査
RFC 7517・7518・8037 に照らして、必須項目の欠け、base64url の不正、alg と kty・曲線の不一致、曲線ごとの座標の長さ、use と key_ops の矛盾、kid の重複を指摘します。
秘密鍵の混入を警告
公開用の JWKS に d・p・q・dp・dq・qi・oth(oct は k)が入っていると、その鍵の行に誤りとして示します。単独の秘密鍵 JWK は正常な入力として扱います。
JWK Thumbprint(RFC 7638)
RFC 7638 §3.2 の必須項目だけを並べて SHA-256 を取り、base64url で表示します。コピーボタンで取り出せます。
JWK と PEM の相互変換
WebCrypto で公開鍵は SPKI、秘密鍵は PKCS#8 の PEM にします。PEM から JWK にも戻せます。WebCrypto で扱えない鍵は、その理由を示して変換しません。
秘密の値は既定で伏せる
秘密鍵を含む入力や出力は伏せて表示し、保存(localStorage など)はしません。ページを閉じると内容は消えます。
こんなときに
- 配布された JWKS の鍵の種類・kid・鍵長を、貼り付けて確かめたい
- 公開用の JWKS に、誤って d や p・q などの秘密の値が入っていないか確認したい
- JWK の公開鍵を PEM にして、OpenSSL や別のライブラリに渡したい
- RFC 7638 の thumbprint を kid にして、鍵を区別できるようにしたい
対応形式
入力
鍵の種類
対応状況
| 機能 | 対応 | 補足 |
|---|---|---|
| JWK・JWKS の検査(必須項目・base64url・alg と kty・曲線) | 対応 | — |
| JWK Thumbprint(RFC 7638・SHA-256) | 対応 | — |
| JWK → PEM(公開鍵 SPKI・秘密鍵 PKCS#8) | 一部対応 | WebCrypto が扱える鍵だけ。Ed448・X448 や secp256k1 は変換できず、Ed25519 は一部のブラウザで失敗することがあります |
| PEM → JWK | 一部対応 | SPKI と PKCS#8 の RSA・EC・Ed25519・X25519 のみ。PKCS#1 と暗号化された PEM は非対応 |
| 秘密鍵から公開鍵の JWK を作る | 対応 | d・p・q などを除き、kty に必要な公開メンバーだけを残します |
| kid の付与(thumbprint を kid にする) | 対応 | — |
| 鍵の生成 | 非対応 | 鍵の生成は暗号・ハッシュツール(crypto_studio)で行います |
| 署名・検証・暗号化・JWT の検証 | 非対応 | 鍵の検査と変換だけを行います |
| URL から JWKS を取得 | 非対応 | 通信しません。JWKS は貼り付けて受け取ります |
| 対称鍵(oct)の PEM 変換 | 非対応 | 対称鍵には PEM の形式がありません |
| オフラインでの利用 | 対応 | 一度開いたあとは通信なしで動作 |
制限・注意事項
- 入力は 20 万文字まで、JWK Set に含められる鍵は 500 件までです。
- RSA の鍵長は n の実際のビット数で判定します。2048 ビット未満には警告を出します(RFC 7518 §3.3 は RS256 などに 2048 ビット以上を求めます)。
- 秘密鍵と公開鍵が対になっているかは確かめません。鍵の数学的な正しさも検査しません。
- 証明書(BEGIN CERTIFICATE)・PKCS#1 の PEM・暗号化された PEM は扱いません。証明書は別のツールで確認してください。
- 秘密鍵の値は、ページの中で表示して読むだけの用途にしてください。この画面は保存しません。
プライバシーと安全性
入力した JWK・JWKS・PEM はお使いのブラウザの中だけで処理し、サーバーへ送信・保存されることはありません。秘密鍵を含む入力や出力は既定で伏せ、ページを閉じると内容は消えます。
よくある質問
JWK と JWKS の違いは何ですか?
JWK Thumbprint(RFC 7638)とは何ですか?
JWKS に秘密鍵が入っているとなぜ問題ですか?
RSA の鍵長はどう判定しますか?
PEM を JWK に変換できないのはなぜですか?
鍵を新しく作るにはどうしますか?
関連ツール
暗号・ハッシュ計算(Crypto Studio)
テキストを入れるだけで SHA-256 や SHA-3 など 12 種類のハッシュ値を一度に表示。Webhook 署名の HMAC 照合、パスワードでのテキスト暗号化、鍵ペアの生成、bcrypt の作成と照合まで、送信なしで手元の端末だけで行えます。
証明書・CSR・PEM Studio
PEM・DER(.cer/.crt)・CSR・PKCS#7(.p7b)を読み、Subject・有効期限(残り日数)・SAN・公開鍵・署名アルゴリズム・SHA-256 フィンガープリントなどを一覧にします。チェーンの並び順と署名も確かめ、PEM と DER を変換できます。すべてブラウザの中で処理し、秘密鍵は読み込みません。
エンコード・デコード(Encode / Decode Studio)
文字化けした %E3%81%82 や eyJ… のトークンを貼るだけで形式を自動判別して元に戻します。エラーは「何文字目の何が不正か」まで表示し、処理はすべてブラウザ内で完結します。
OAuth / PKCE Studio(PKCE・認可 URL 作成)
PKCE の code_verifier を作るか貼り付けて検査し、S256 の code_challenge を計算します。認可リクエストの URL を組み立て、認可サーバーから戻った URL の state が作ったものと一致するかを確かめます。公開クライアント向けの仕組みで、client_secret は使いません。トークンの交換は通信を伴うため、curl のコマンドを表示するだけです。
テキスト・コード Diff
変更前と変更後を貼り付けるかファイルをドロップするだけで、追加・削除された行と、行の中で変わった単語まで色分けして表示します。結果は unified 形式のパッチとしてコピー・保存でき、入力はブラウザの外へ出ません。
UUID / ULID / NanoID / トークン生成
ページを開いた瞬間に UUID が 1 件生成済み。種類を選ぶだけで UUID v7・ULID・NanoID・ランダムトークンに切り替わり、最大 1 万件を .txt / .csv / .json で保存できます。既存の UUID や ULID を貼り付ければ、埋め込まれた時刻やバージョンも読み取れます。
最終更新: