🔐 PKCE (code_verifier/challenge) 生成
code_verifierはWeb Crypto APIの暗号学的乱数から生成され、code_challengeはそのSHA-256ハッシュのBase64URLエンコードです(S256方式)。
生成中...
OAuth 2.0 の認可コードフローを保護するPKCE(Proof Key for Code Exchange, RFC 7636)拡張で使用する code_verifier と、それに対応する code_challenge(S256方式)のペアを生成するツールです。ランダムなcode_verifierをブラウザのWeb Crypto APIで生成し、そのSHA-256ハッシュをBase64URLエンコードしてcode_challengeを計算します。
使い方
- ページを開くと自動的にcode_verifierとcode_challengeのペアが生成されます。
- 「再生成」ボタンで新しいペアを生成できます。
- 各値の右のボタンでクリップボードにコピーできます。
よくある質問
PKCEとは何ですか?
PKCE(Proof Key for Code Exchange)は、OAuth 2.0の認可コードフローにおいて、認可コード横取り攻撃を防ぐための拡張仕様(RFC 7636)です。特にモバイルアプリやSPAなど、クライアントシークレットを安全に保持できないアプリケーションで推奨されます。
code_verifierとcode_challengeの関係は?
code_verifierはランダムに生成される秘密の文字列です。code_challengeはcode_verifierをSHA-256でハッシュ化し、Base64URLエンコードした値(S256方式)で、認可リクエスト時にサーバーへ送信されます。トークン交換時に元のcode_verifierを送ることで、認可コードを要求したクライアントと同一であることを証明します。
このツールの計算結果は正しいですか?
RFC 7636 Appendix Bに掲載されている公式のテストベクター(code_verifierとcode_challengeの対応例)を用いて実装を検証済みです。