生成环境

openssl version
OpenSSL 1.1.1q

生成PKCS #1私钥

openssl genrsa -out private#1.pem

默认生成的PKCS#1

-----BEGIN RSA PRIVATE KEY-----
密钥内容
-----END RSA PRIVATE KEY-----

生成PKCS#8私钥

openssl pkcs8 -topk8 -inform PEM -in private#1.pem -outform PEM -nocrypt -out private#8.pem

借助已生成的PKCS #1私钥通过命令生成PKCS #8私钥

-----BEGIN PRIVATE KEY-----
密钥内容
-----END PRIVATE KEY-----

PKCS#8和PKCS#1的明显区别是BEGIN和END中的RSA标识去掉了,对比内容,也不太一样,想要看具体的结构区别,可以通过ASN1在线解析工具,把密钥粘贴进去,通过解码可以看出来两者结构有明显区别。

生成PKCS#8公钥

openssl  rsa -in private#1.pem -pubout -out public#8.pem

内容如下

-----BEGIN PUBLIC KEY-----
密钥内容
-----END PUBLIC KEY-----

细心的朋友可能发现,生成公钥是通过PKCS #1私钥生成的,这样得到的结果会是PKCS#8公钥吗,通过生成的结果可以看到,得到的确实是是PKCS#8公钥(因为没有RSA标识)。但是和通过PKCS #8私钥生成的结果一致吗?结果是一致的,如果不相信,可以试试看。

openssl  rsa -in private#8.pem -pubout -out public#8_2.pem

如果想要PKCS #1的公钥可以吗,当然可以

通过PKCS#8公钥生成PKCS#1公钥

openssl rsa -pubin -in public#8.pem -RSAPublicKey_out -out public#1.pem

如果生成的公钥默认是PKCS#1,可以生成PKCS#8的公钥吗,当然可以

通过PKCS#1公钥生成PKCS#8公钥

openssl rsa -in public#1.pem -pubout -RSAPublicKey_in -out public#8.pem

总结

OpenSSL 1.1.1q (应该是1.1.x版本都是,但是未测试其他)默认生成的PKCS#1私钥,如果需要PKCS#8私钥需要转换,默认生成的是PKCS#8公钥,如果需要PKCS#1公钥,需要转换。

OpenSSL生成PKCS#8私钥和公钥相关推荐

  1. 使用openssl生成PEM格式私钥和公钥及ECDSA签名

    一.生成密钥与读取的过程 /* 生成公钥 */     RSA* rsa = RSA_generate_key( 1024, RSA_F4, NULL, NULL); BIO *bp = BIO_ne ...

  2. OpenSSL生成 SM2公私钥

    OpenSSL生成 SM2公私钥 当前形势 国密局字[2011]50号"关于做好公钥密码算法升级工作的通知", 要求新投入运行并使用公钥密码的信息系统,应使用SM2椭圆曲线密码算法 ...

  3. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...

    转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...

  4. 妙借Git自带的OpenSSL生成RSA公私钥的.pem 文件

    大家好,我是神韵,是一个技术&生活博主.出文章目的主要是两个,一是好记忆不如烂笔头,记录总结中提高自己.二是希望我的文章可以帮到大家.欢迎来点赞打卡,你们的行动将是我无限的动力. 本篇主题是: ...

  5. Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对)

    Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对) 1.openssl生成RSA公私钥对 [root@loaclhost ~]# openssl version OpenS ...

  6. Java基于OpenSSL生成 RSA 公私钥对数据进行加解密

    使用OpenSSL来生成私钥和公钥 验证机器上是否安装openssl 命令:openssl version -a [root@node00 test]# openssl version -a Open ...

  7. OpenSSL生成RSA公私钥(java)

    生成私钥:genrsa -out rsa_private_key.pem 1024 生成公钥:rsa -in rsa_private_key.pem -out rsa_public_key.pem - ...

  8. openssl从PFX导出私钥、公钥

    原文:http://blog.csdn.net/wxyfighting/article/details/8840090 从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足) 1. ...

  9. java中使用openssl生成的rsa公私钥进行数据加解密_使用openssl生成RSA公钥和私钥对...

    在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...

最新文章

  1. shell脚本常用的4种流程控制语句
  2. Drupal常用开发工具(一)——Devel模块
  3. vue开发 - 将方法绑定到window对象,给app端调用
  4. AI又抢了人类职位,这回轮到银行销售人员了?
  5. EFK 配置geo-ip落地实践
  6. color2gray 的实现
  7. ipad写python代码用什么软件_iPad 能用来写代码吗?有哪些必备软件推荐?
  8. 操作系统概念 学习笔记
  9. 文员常用的8个excel函数
  10. 计算机主机配置一般有机箱主板cpu,电脑配置参数详解教程
  11. 分页插件Kaminari
  12. Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】
  13. 连续潜在变量---主成分分析
  14. 如何在 iPhone 上恢复已删除的短信
  15. 单线程与多线程使用场景
  16. react学习—ref Hook
  17. QGIS二次开发:加载XYZ Tiles形式的瓦片地图
  18. Unity检视面板重构(OnInspectorGUI重写)
  19. 学生管理系统(添加、查看、删除、修改学生信息)
  20. openLayers + Vue实现测量(长度、面积)

热门文章

  1. 深入理解JVM(四)JVM的垃圾回收机制
  2. Pytorch深度学习入门与实战(笔记)
  3. Tomcat配置HTTPS方式生成安全证书
  4. 最新版PyCharm安装详细教程(Win10)
  5. TCRT5000红外反射传感器(循迹模块)
  6. 微信小程序——服务通知,发送订阅消息
  7. 批发供应系统批发订货发货管理系统开发功能
  8. 在线投票活动制作投票制作页面线上投票活动制作投票区制作
  9. GoAhead4.1.0 开发总结一(移植)
  10. 重庆自考学历属于什么学历?