OAuth 开发与调试

PKCE 生成器生成参数,核对已有配对

保留原始验证器,计算 S256 并按需核对预期挑战值。

PKCE 生成器

代码验证器

输入 43–128 个 ASCII 字符:A–Z、a–z、0–9、-、.、_、~。不会自动移除空格或换行。

预期挑战值(可选)

完全留空表示不比较;否则必须输入 43 个规范 Base64URL 字符,不含 = 填充。

S256 结果

语法合格不等于手工输入的验证器具有随机性或不可预测性。

输入只在当前页面计算,工具不会上传或保存这些值。

选项

只影响下一次主动生成。随机字节转换为无填充 Base64URL;SHA-256 输出始终为 256 位。

粘贴验证器,或先预览新生成的值。

调试授权码交换时,先确认两次请求使用的是同一组参数。PKCE 生成器支持 code_verifier 生成,也可直接接收已有的 PKCE 验证器,重新计算你本应发送的 S256 挑战值。

验证器留给令牌请求,挑战值用于授权请求。页面显示匹配,只能证明这两个值在当前算法下相符,不能证明重定向地址、客户端配置或登录流程正确。

为什么使用 PKCE 生成器

排查时保留原来的验证器

重新生成一组值,无法解释旧事务为何失败。PKCE 生成器从你粘贴的原值派生挑战值,方便与授权请求中的 code_challenge 对照;需要新事务时再主动生成。

随机字节形成验证器,再经摘要计算得到固定长度的挑战值。

区分输入不合格与配对不匹配

长度越界、隐藏空格、非规范尾字符和合法但不同的挑战值不是同一种故障。页面先检查原始文本,再单独报告是否匹配,帮助你缩小排查范围。

同一验证器分别与两条预期挑战值核对,一条匹配,另一条不匹配。

围绕一次授权事务核对

01

选择已有值或新随机源

页面初始为空,不会自动生成。默认的 32 字节随机源产生 43 字符验证器;更改字节数只影响下次主动生成,不会改写当前输入。

  • 排查进行中的事务,应使用该事务最初保存的验证器。
02

核对请求实际发送的挑战值

预期值完全留空时只计算;输入空格仍会报错。自动模式在编辑停顿 350 ms 后运行;关闭后可点击计算或按 Ctrl/Cmd+Enter。

  • 不要把十六进制摘要当成原始验证器,也不要把普通 Base64 当作 Base64URL。
03

查看结果再导出

确认比较状态后,分别复制两个值或导出完整 JSON。生成、示例和清空均先显示替换预览,应用后才生效;撤销可恢复之前的输入和结果快照。

  • 输入改变或预览未处理时,不能导出旧结果。

从随机源到可检查的报告

安全随机生成

选择 32、48、64 或 96 个随机字节,编码后分别得到 43、64、86 或 128 字符。使用浏览器密码学随机源,每次生成均需主动操作。

固定的 S256 派生

对验证器的 ASCII 文本计算 SHA-256,再把 32 字节二进制摘要转成无填充 Base64URL。最终挑战值固定为 43 字符。

可选的配对比较

粘贴已有挑战值即可核验;结果区明确区分匹配、不匹配和未请求比较。修改输入后会停用过期结果的导出。

完整 JSON 复制与下载

报告包含验证器、挑战值、方法、长度、语法状态、预期值、比较状态和随机源信息。单个值也可独立复制,便于填入不同请求。

校验范围与使用边界

保留输入原貌
验证器只接受 43–128 个 ASCII 未保留字符。引号、空格、换行、中文和 = 填充均不合法,不进行自动修剪或修复。
要求规范挑战编码
预期 S256 挑战值必须恰好为 43 个 Base64URL 字符,最后两位填充比特必须为零。即使能解码成相同字节,非规范写法也会被拒绝。
仅支持 S256
不提供 plain、不从摘要反解验证器,也不执行登录、令牌交换或网络请求。此处反核验是重新计算并比较。
源熵不等于安全强度
随机源对应 256、384、512 或 768 位熵,SHA-256 输出仍为 256 位。手工输入即使满足语法,也可能完全可预测,工具不会为其估算真实熵。
示例不用于真实授权
RFC 示例是公开测试向量,每次新的授权尝试应使用新的随机值。配对匹配不代表服务提供商配置正确。

PKCE 生成器常见问题

这些值会被发送到服务器吗?

不会。PKCE 生成器在当前浏览器页面生成随机数并计算摘要,不上传或保存验证器。复制与下载是由你主动执行的导出操作。

应该选择哪种挑战方法?

能够计算 SHA-256 的客户端应使用 S256。本工具固定采用 S256,不会退回 plain;plain 会直接把验证器用作挑战值。

可以重复使用 code_verifier 吗?

每次新的授权尝试都应生成新的不可预测验证器。同一次尚未完成的事务应保留原值,不能在令牌交换前重新生成,否则会失去原来的配对关系。

挑战方法填写错误会怎样?

服务端可能按另一个方法处理验证器,导致交换失败。本工具生成的是 S256 结果,请在实际授权请求中使用 code_challenge_method=S256;本地匹配不代表请求参数全部正确。

能检查服务提供商的 PKCE 配置吗?

不能。这里仅检查本地文本、派生值和配对关系,不连接提供商,也不验证回调地址、客户端注册或令牌端点。

发现计算或校验问题?

核对你手中的一组值

把原始验证器交给 PKCE 生成器,查看计算与比较结果,再复制或下载当前报告用于调试。