You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何RSA私钥PEM文件内容与openssl pkey命令输出存在差异?

RSA私钥文件与openssl pkey输出差异的原因

你遇到的差异核心是两种不同的RSA私钥编码格式导致的:

  • PKCS#1专用格式:你直接cat查看的私钥属于这种RSA算法专属格式,页眉页脚为-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----。它的编码内容直接包含RSA私钥的核心字段(模数、公钥指数、私钥指数等),末尾的==是Base64编码的填充字符——因为Base64要求编码长度为4的整数倍,不足时会用等号补齐。

  • PKCS#8通用格式:openssl pkey -in my-priv-key.pem命令输出的是这种跨算法的通用私钥格式,页眉页脚为-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----。PKCS#8可以封装RSA、ECDSA等多种算法的私钥,内部会额外包含算法标识信息。openssl pkey工具默认会自动将输入的PKCS#1格式私钥转换为PKCS#8格式输出,这就是两者编码内容不同、后者无==的原因——两种格式的Base64编码内容本身存在差异,且PKCS#8的编码长度恰好满足Base64的要求,无需填充。

至于公钥的情况,若你的公钥本身是SPKI通用格式(页眉页脚为-----BEGIN PUBLIC KEY-----),openssl pkey -in my-pub-key.pem -pubin命令输出会和原文件一致;如果原公钥是PKCS#1的RSA PUBLIC KEY格式,该命令会转换为SPKI格式输出,只是你的场景下恰好原文件就是SPKI格式,所以输出与cat结果相同。

内容的提问来源于stack exchange,提问作者jmckitrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:47:10