生成RSA公私钥

📅 2026/6/26 6:10:54
生成RSA公私钥
生成步骤生成RSA私钥以X509编码指定生成的密钥的位数为2048位该步生成的私钥是PKCS1格式第二步将私钥转为PKCS#8编码。openssl genrsa -out rsa_private_key_2048.pem 2048将上一步生成的RSA私钥转换成PKCS#8编码作为最终使用的私钥。openssl pkcs8 -topk8 -in rsa_private_key_2048.pem -out pkcs8_rsa_private_key_2048.pem -nocrypt导出RSA公钥以X509编码作为最终交换的公钥。openssl rsa -in rsa_private_key_2048.pem -out rsa_public_key_2048.pem -pubout额外说明公私钥一般有2种格式pem和der格式上面生成的是pem格式der格式为二进制格式通常不能直接查看pem是将二进制转为base64格式并添加头尾PKCS#8编码私钥头尾-----BEGIN PRIVATE KEY-----PKCS#1编码私钥头尾-----BEGIN RSA PRIVATE KEY-----PKCS#8编码公钥头尾-----BEGIN PUBLIC KEY-----私钥pem格式转der格式(公钥的话需要再增加-pubin选项)openssl pkey -inform PEM -outform DER -in rsa_private_key_2048.pem -out rsa_private_key_2048.der私钥der格式转pem格式(公钥的话需要再增加-pubin选项)openssl pkey -inform DER -outform PEM -in rsa_private_key_2048.der -out rsa_private_key_2048.pemRSA的密钥一般有2种编码方式即PKCS#1和PKCS#8适用范围PKCS #1 仅适用于 RSA 密钥。PKCS #8 是通用的可以用于多种密钥类型。格式头PKCS #1 PEM 格式头为“-----BEGIN RSA PRIVATE KEY-----”。PKCS #8 未加密的 PEM 格式头为“-----BEGIN PRIVATE KEY-----”加密的为“-----BEGIN ENCRYPTED PRIVATE KEY-----”。结构PKCS #1 直接包含 RSA 私钥参数。PKCS #8 包含一个通用的密钥格式能够封装不同类型的私钥信息和算法标识符。生成ED25519公私钥生成步骤生成ed25519私钥openssl genpkey -algorithm ed25519 -out private.pem从私钥中生成公钥openssl pkey -in private.pem -pubout -out public.pem额外说明1.低版本的openssl不支持ed25519算法2.上面生成的密钥格式也是pem格式,pem格式与der格式的转换参考上面rsa的方式3.ed25519算法原始的密钥长度是32字节的但是openssl生成的私钥长度是48位公钥长度是44位的。原因是openssl在私钥前添加了16位的前缀公钥添加了12位的前缀因此如果想要获取原始的32位密钥可以使用如下命令cat private_key.der | tail -c 32 | xxd -p这里使用的是二进制的der格式密钥最终拿到的是16进制的原始私钥如果仍然有疑问欢迎留言本文来自博客园作者无所事事O_o转载请注明原文链接OPENSSL生成非对称加密公私钥 - 无所事事O_o - 博客园推荐一下我的微信小程序 - “二次验证码TOTP”有任何建议或需求可以直接联系我免费云端加密备份 换机不丢失安全又便捷API快速集成 提供开放API实现自动化验证码获取多端共享基于微信小程度可同时在手机PC端共同使用一键复制