公开 JWKS 只放公开成员
RSA 的 d、p、q、dp、dq、qi 和 EC 的 d 都是私钥参数。页面生成 JWKS 时会移除它们,对称 oct 密钥则完全不进入公开输出。
JOSE / RFC 7517 / RFC 7638
检查密钥类型、用途与 kid,把 RSA/EC 公私钥在 JWK 和 PEM 之间转换,并生成只含公开成员的 JWKS 与 RFC 7638 SHA-256 指纹。
粘贴 JWK、JWKS 或 PEM,也可以载入 DER/CRT 文件。所有转换都在浏览器本地完成。
INPUT
当前来源:内置 P-256 公钥示例
来源
等待输入
有效密钥
—
私钥输入
—
等待解析
解析后会显示每把密钥的类型、位数、用途冲突、私钥风险、RFC 7638 指纹、公开 JWKS 与可导出的 PEM。
RSA 的 d、p、q、dp、dq、qi 和 EC 的 d 都是私钥参数。页面生成 JWKS 时会移除它们,对称 oct 密钥则完全不进入公开输出。
kid 只是选择提示,可能重复也可能缺失。本页可用 RFC 7638 指纹补齐稳定 kid,但验证端仍要按算法、用途和真实公钥完成签名检查。
CRT/CER/DER 证书会提取 SPKI 公钥再转换为 JWK,适合检查 JWT 配置中的公钥是否确实来自准备使用的证书。
RELATED TOOLS
USE & REVIEW
JWK 是一把密钥的 JSON 表示;JWKS 是带 keys 数组的密钥集合,常由身份服务通过固定 URL 发布,验证方再根据 JWT Header 的 kid 选择公钥。JWKS 可以同时保留轮换中的新旧公钥,但不能把私钥参数或对称 oct 密钥公开出去。
kid 是应用层的密钥标识,可以由发布方按自己的轮换规则设置;RFC 7638 Thumbprint 则只取该密钥类型必须的公开成员,按固定顺序做 SHA-256 和 Base64URL。工具在缺少 kid 时可用 Thumbprint 作为稳定默认值,但不会假设所有系统都采用这种命名。
RSA、EC 和 OKP 输入若含 d、p、q、dp、dq、qi 等私钥成员,工具会在公开 JWK/JWKS 输出中移除它们,只保留验证需要的公开参数。oct 是共享对称密钥,没有可分离的公钥,因此不会进入公开 JWKS。导出后仍应人工搜索敏感字段并在测试环境验证。
use 常用 sig 或 enc 表示高层用途,key_ops 则列出 sign、verify、encrypt、decrypt 等具体操作。比如 use=sig 却同时声明 encrypt,会让不同 JOSE 库产生拒绝或不一致行为。工具会提示明显冲突,但最终允许的算法、issuer、audience 和权限仍由应用配置决定。
不是。PEM 只是密钥或证书常见文本封装;JWK 是密钥参数的 JSON 表示。公钥 PEM 与 JWK 之间转换不会增加域名、主体、有效期、签发者或信任链。需要 TLS 证书时仍要生成 CSR、由 CA 签发并部署完整证书链。
不会。JSON、ASN.1 包装、Web Crypto 导入导出、X.509 公钥提取和 RFC 7638 指纹都在当前浏览器完成。即使页面不上传,私钥仍可能被扩展、剪贴板、下载目录和屏幕共享看到;正式私钥应留在 KMS、HSM 或最终服务端,只用测试材料排错。