认证密钥格式

JWK 转换先检查集合,再导出一把密钥

粘贴 JWK、JWKS,或一个 SPKI / PKCS8 格式的 PEM 块。

JWK 转换

JWK、JWKS 或 PEM 输入

密钥只在当前页面处理;工具不上传或持久保存输入。

结果

密钥选项

公钥 JWK 只保留公开参数及原有 kid/alg/use。PEM 不保留元数据;私钥 JWK 只包含密钥材料。

上限为 100,000 个字符、50 把密钥。RSA 2048–8192 位;P-256/384/521;浏览器支持的 Ed25519/X25519。仅一个 SPKI 或未加密 PKCS8 PEM。

导入检查与指纹不代表签发方可信、证书有效或 JWT 验证通过。

粘贴密钥或载入公开示例。

JWK 转换常发生在认证服务与网关对接时:服务端给出一组 JSON 密钥,而配置文件需要 PUBLIC KEY 文本。先看检查报告,再确认选中项。格式能读取,不代表这把钥匙来自可信签发方;轮换期间还要核对具体用途与密钥标识。

为什么使用 JWK 转换工具

轮换期间明确选中哪把钥匙

JWK 转换保留原始 JWKS,通过序号与 kid 共同展示选择项。即使两条记录用了同一个标识,也不会被合并或隐式替换。检查模式逐项给出问题,转换模式只处理你选中的那一把密钥。

三张密钥卡片中选中一张,箭头指向单个 PEM 文档。

换了包装,仍能核对同一密钥

JWK 指纹只根据标准规定的必需字段计算。对非对称密钥,更换标签、调整字段顺序或提取公钥都不改变指纹。可以用它对照两份配置中的密钥材料,避免仅凭文件名判断是否一致。

私钥提取出公钥,两种表示下方显示相同的指纹图案。

导出前要留意的三件事

01

先检查集合,再选择输出

JWKS 校验会检查每条记录的必需字段、编码和浏览器导入结果。有错误时报告不能导出,但你仍可按序号选中另一条有效记录,将该密钥单独转换。不要把集合检查与单钥转换的范围混淆。

02

按接收方需要选择公私格式

JWK 转 PEM 的公钥结果使用 SPKI,私钥结果使用未加密 PKCS8。私钥或对称密钥需要先勾选处理许可,修改输入后许可会重置。公钥提取只写入结果,原始输入仍可检查。

03

确认结果已经重新计算

自动模式在修改后等待 350 毫秒执行。关闭自动模式可用 Ctrl/Cmd+Enter 手动运行。输入、操作或选钥发生变化时,复制与下载立即禁用;示例和清空都有预览及一次撤销。

字段、容器与标准指纹

逐项展示声明与错误

报告包含密钥类型、曲线或 RSA 位数、输入中的 kid、alg、use、key_ops,以及敏感属性和每项错误。重复 kid 会提示按序号核对,不会擅自替你选出用于验证某个令牌的钥匙。

双向处理常用 PEM 容器

PEM 转 JWK 接受 PUBLIC KEY 和未加密 PRIVATE KEY。浏览器导入成功后导出真实密钥参数,不通过替换文本头部冒充转换。支持范围内的公钥可以给网关配置,私钥输出则要作为秘密保管。

用字段白名单提取公钥

公钥 JWK 仅保留必要数学字段,以及原有的 kid、alg、use。私有成员、key_ops、ext 和未知扩展全部排除,避免嵌套扩展夹带私密信息。提取不会为公钥沿用私钥的 sign 等操作声明。

固定使用一种可复核算法

指纹将按名称排序的必需字段组成紧凑 JSON,经 SHA-256 后编码为无填充 Base64URL。非对称私钥只取公钥部分;oct 对称密钥则使用秘密 k 计算,但检查报告不回显该秘密值。

支持范围与真实限制

密钥类型与长度
RSA 支持 2048–8192 位;EC 支持 P-256、P-384、P-521;OKP 支持浏览器可用的 Ed25519、X25519。secp256k1、Ed448、X448 和多素数 RSA 不在范围内,遇到后直接报错。
只接受指定的文本容器
一次只处理一个 PEM 块,不接受 PKCS1、SEC1、OpenSSH、证书、加密 PKCS8 或裸 DER。旧格式应先用可信的本地工具转换包装;仅把标题改成 PRIVATE KEY 并不能改变内部编码。
声明不等于信任策略
PEM 不携带 kid、alg、use,来回转换不能恢复这些字段,也不会推断签名用途。检查通过只说明支持的结构和导入检查通过,不能证明来源可信、证书有效或 JWT 签名成立。
集合与对称密钥限制
输入上限为 100,000 个字符,JWKS 最多 50 把密钥。工具不读取远程地址,也不整批转换并发布集合。oct 仅支持查看和指纹,没有可提取的公钥,也不能生成 PEM。
私钥导出仍是明文秘密
只有允许敏感输入处理并选择私钥输出才会生成私钥结果,导出的 JWK 与 PKCS8 均未加密。支持的私钥会检查公私部分一致性,但不会生成新钥或认证所有数学性质。

密钥格式的常见疑问

RFC 7638 指纹如何计算?

先选出规定的必需字段并按名称排序,再对紧凑 JSON 的 UTF-8 字节计算 SHA-256,最后使用无填充 Base64URL。RSA 只包含 e、kty、n,因此修改 kid 或 alg 不会改变同一密钥的指纹。

指纹与 kid 一定相同吗?

不一定。kid 是签发方给密钥分配的标识,可以采用指纹,也可以使用其他命名方式。本工具显示原有 kid,不会自动把它改成指纹;集合里重复的 kid 仍需通过序号区分。

可以转换私钥吗?

可以处理支持类型的完整私有 JWK 或未加密 PKCS8。页面检测到敏感输入后要求勾选处理许可,再选择私钥 JWK 或私钥 PEM 输出。若只需要分享验证材料,应选择公钥结果。

支持哪些密钥类型?

支持指定长度的 RSA、三条 NIST 曲线以及浏览器支持的 Ed25519 和 X25519。对称 oct 可以检查和计算指纹,但不能变成 PEM。浏览器不支持某种导入时会报错,不会生成替代密钥。

为什么 PEM 转出的 JWK 没有 alg?

因为 PEM 容器没有保存这个声明。引擎为读取密钥选用的内部算法不代表应用的签名策略,所以结果不把它当作 alg 写回。用途和算法应依据你的认证配置单独核实。

报告有意外结果?

开始 JWK 转换

先用公开示例体验 JWK 转换,检查两条记录并切换选中项,再按接收方需要导出公钥 JWK 或 PEM。