1. 密钥对
    根据RSA的加密机制(自行查找RSA工作原理),通常可以私钥加密-公钥解密(多用于签名),公钥加密-私钥解密(多用于数据传输加密),私钥可以生成公钥。
  2. 密钥对生成
    生成私钥,长度为2048,默认格式为PKCS1,即,头部和尾部有RSA字样
    openssl genrsa -out rsa_private_key.pem 2048
    

    生成对应公钥

    openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key_2048.pem
    

    公钥格式通常不表,我查看了很多资料都不说这个,但是可以发现这样生成的公钥头部没有RSA,所以应该为PKCS8格式

  3. 密钥转换,PKCS1 -> PKCS8
    openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform pem -nocrypt -out private_pkcs8.pem

    查了一些资料一般也只是转换私钥的格式。

  4. C++

     rsa加密的public key格式有多种,常见的有两种,一种密钥头为‘-----BEGIN RSA PUBLIC KEY-----’,一种开头为‘-----BEGIN PUBLIC KEY-----’,二者分别对应rsa的PKCS#1和PKCS#8格式。
      使用openssl库加载rsa的公钥时,使用的函数也不同。以字符串公钥为例,对PKCS#1格式的密钥加载使用PEM_read_bio_RSAPublicKey()函数,对PKCS#8格式公钥的加载使用PEM_read_bio_RSA_PUBKEY()函数。

    ---摘抄自下面第二个链接,这个说出了关键点。公钥要区分格式读取,私钥不用。

参考: https://www.jianshu.com/p/f18304b1b513

  https://blog.csdn.net/freesonWANG/article/details/87717361

最新文章

  1. Java进击C#——开发环境
  2. css框架
  3. c#比较两个List相等
  4. 【面试必备】CSS盒模型的点点滴滴
  5. c++20701除法(刘汝佳1、2册第七章,暴搜解决)
  6. mouseover和mouseout闪烁问题
  7. JS事件分析
  8. 强连通+二分匹配(hdu4685 Prince and Princess)
  9. 菜鸟学习Hibernate——持久层框架
  10. MySQL 知识点
  11. Foundation Data Structure
  12. PHP学习之数据库操作
  13. ajaxterm不好还是gateone好
  14. [Windows Phone] 以多国语言做为开发前提 (2)
  15. Learning ROS for Robotics Programming Second Edition学习笔记(九) indigo Gazebo rviz slam navigation
  16. python3 load Iris.data数据集出现报错key words: b'Iris-setosa'
  17. maven项目发布到tomcat的错误
  18. Ado.net之存储过程的使用【三】
  19. Java编程的逻辑 (11) - 初识函数
  20. Eclipse QuickSear的插件的说明

热门文章

  1. 《深入理解 Java 虚拟机》读书笔记:Java 内存模型与线程
  2. ArcGIS中影像图去黑边
  3. 添加属于自己的python模块空间
  4. 使用 nodejs 对文件进行批量重命名
  5. SWUSTOJ 960A题总结,又完成一个讨厌的题,内含链表操作启发
  6. HTTP协议的学习总结
  7. echarts设置图标图例legend多种形状
  8. log4j.properties文件无法解析
  9. php依赖注入与容器,Container,控制反转
  10. JAVABEAN的SCOPE属性(转载)