TEXT LAB / LIVEPKCE 生成加载中
PKCE 生成 - 文本工具 · 萤炬工具箱 · 工具说明与使用指南

PKCE 生成 - 文本工具 · 萤炬工具箱

PKCE 生成产出 OAuth2 授权码模式所需的 code_verifier 与对应的 S256 code_challenge,遵循 RFC 7636。调试移动端或单页应用的授权流程时,需要手工构造授权 URL 并在换 token 时回传 verifier,用 curl 或 Postman 试接口时手算 SHA-2…

PKCE 生成产出 OAuth2 授权码模式所需的 code_verifier 与对应的 S256 code_challenge,遵循 RFC 7636。调试移动端或单页应用的授权流程时,需要手工构造授权 URL 并在换 token 时回传 verifier,用 curl 或 Postman 试接口时手算 SHA-256 再做 base64url 很麻烦,这里一键生成配对值。

使用步骤

  1. 点击生成,得到一对 code_verifier 与 code_challenge。
  2. 把 code_challenge 与 code_challenge_method=S256 放进授权请求 URL。
  3. 拿到授权码后,用同一个 code_verifier 去换取 token。
  4. 每次新的授权流程重新生成一对,不要复用。

功能与限制

  • 生成的 verifier 长度符合 RFC 7636 要求(43 到 128 个字符)。
  • 本地用浏览器加密 API 计算,verifier 不上传。

常见问题

PKCE 是用来解决什么问题的?
公开客户端(手机 App、纯前端应用)没法安全保存 client_secret,授权码一旦被截获就能被换成 token。PKCE 让客户端自己生成一个一次性秘密,只有持有它的人才能完成兑换,从而堵住这个缺口。
S256 和 plain 该选哪个?
一律选 S256。plain 是把 verifier 原样当 challenge 传,等于没有保护,规范里只为极老旧的无哈希能力环境保留。
code_verifier 可以重复使用吗?
不可以。它是一次性的,每次发起授权都要重新生成。复用会让之前被截获的值仍然有效,等于自己废掉了 PKCE 的意义。
为什么 challenge 里没有加号和斜杠?
因为用的是 base64url 变体:加号换成减号、斜杠换成下划线、去掉末尾等号填充,这样才能安全地放进 URL 查询参数而不需要二次转义。