JWK ↔ PEM 转换器
在 JWK、JWKS 与 SPKI 或 PKCS#8 PEM 之间互相转换密钥
等待输入密钥。
转换器的功能
在 JWK、JWKS 和 PEM(公钥为 SPKI,私钥为 PKCS#8)之间转换公钥和私钥。它会自动检测输入格式,显示密钥类型、曲线或模数长度、kid、alg、use 和 key_ops,并计算 RFC 7638 指纹。可用于调试 JWT 签名密钥、身份提供商配置、API 网关和 JWKS 端点。
支持的密钥和格式
密钥类型:RSA,P-256、P-384 和 P-521 上的 EC,以及浏览器 Web Crypto 支持时的 Ed25519。输入:单个 JWK、JWKS,或标签为 PUBLIC KEY、PRIVATE KEY、RSA PUBLIC KEY 和 RSA PRIVATE KEY(PKCS#1)、EC PRIVATE KEY(SEC1)或 CERTIFICATE(仅其公钥)的 PEM 块。PKCS#1 和 SEC1 密钥会在导入前封装为 SPKI 或 PKCS#8。加密私钥、限定为 RSA-PSS 或 RSA-OAEP 的密钥、X25519、secp256k1 以及对称 oct 密钥会被报告为不支持。
私钥不会离开浏览器
解析和转换通过 Web Crypto API 在浏览器中完成,密钥不会发送到 CodingTool 服务器。私钥从不保存,私有输出在屏幕上会被遮盖,直到你选择“显示”。复制和下载始终使用完整密钥。只会记住“格式化 JSON”等显示偏好。
指纹与 kid
指纹是按 RFC 7638 对密钥必需的公开成员做 SHA-256 哈希后得到的 base64url 值,因此同一密钥对的公钥和私钥指纹相同。开启“用指纹作为 kid”即可将其用作稳定的密钥 ID。否则,kid、alg、use 和 key_ops 会保留输入 JWK 中的值,并可在密钥元数据中编辑。
限制
输入上限为 256 KB 和 100 个密钥。PEM 密钥不包含 kid、alg 或 use,因此经过 PEM 往返转换后这些信息会丢失。Web Crypto 会校验密钥内容,参数不一致时会直接拒绝而不是转换。本工具不验证证书:请使用 X.509 Certificate Inspector 检查主体、有效期和证书链。
