PEM/JWK 互转
PEM 与 JWK/JWKS 双向互转,公私钥通吃,WebCrypto 实现。
转换结果(本地 WebCrypto,密钥不上传)
粘贴内容后自动转换。
使用说明
这个工具解决什么问题
JWT 验签要 JWK,openssl 要 PEM,两套格式描述的是同一把密钥,手转却要啃 ASN.1 结构,极易抄错一个字段,导致验签失败还查不出原因。这个工具在 PEM 与 JWK 之间双向转换,公钥私钥都支持,还能按 JWKS 数组形态输出,配 OAuth、JWT 联调省去啃文档的时间。
核心能力
双向互转:PEM(SPKI 公钥与 PKCS#8 私钥)与 JWK 互转,字段由 WebCrypto 标准导入导出保证正确。JWKS 输出:多把公钥合成 JWKS 数组,直接用于发布端点或配置文件。错误前置:格式不对在导入时即报错并说明原因,不产出坏结果。公私钥都支持:验签配置与解密配置一把工具全搞定。
使用建议
从证书或 openssl 导出的公钥,贴进来转成 JWK 再放进 JWT 配置;发布 JWKS 端点前,先用本工具把多把公钥合成数组核对字段;私钥转换完成后,清掉浏览器里粘贴的内容。
全部解析与转换在浏览器本地完成,密钥不上传服务器,断网可用;输出前后各核对一次 n、e 字段,能避免绝大多数联调事故。
常见问题
PEM 和 JWK 分别是什么,为什么需要互转?
PEM 是带 BEGIN/END 头尾的 Base64 文本,openssl 生态与各类证书系统的通用形态;JWK 是 JSON 形式的密钥,JWT 验签配置、OAuth 服务器的 JWKS 端点都用它。两边生态各说各话,互转是联调时的刚需。
JWKS 是什么,什么时候用?
JWKS 就是把多个 JWK 放进一个 JSON 数组,是发布公钥的标准形态。身份提供方把 JWKS 挂在固定 URL 上,任何资源服务器都能据此验证 JWT 签名。本工具支持按 JWKS 数组形态输出,粘进配置即可用。
字段转换的准确性怎么保证?
转换走浏览器原生 WebCrypto 的导入导出接口:先按标准解析,再按标准导出,n、e、d 等字段与标准定义严格一致,不靠手写字符串拼接,格式错误会直接报错而非产出坏数据。
相关工具
API 密钥生成
Hex/UUID/Base64URL/易读四种风格密钥,前缀与熵估算。
Base32/Base58 转换
UTF-8 / Hex / Base32 / Base58 四编码互转,RFC 4648 口径。
RSA 密钥生成
RSA-OAEP 2048/3072/4096 密钥对,PEM 双段本地输出。