跳到主要内容

PEM/JWK 互转

PEM 与 JWK/JWKS 双向互转,公私钥通吃,WebCrypto 实现。

本地计算 · 数据不出浏览器
PEM(可粘贴多把公钥)
0 字符1 行0 B

转换结果(本地 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 双段本地输出。

查看更多编解码,或浏览全部工具。