Python RSA PKCS#1 转 PKCS#8

Python中使用RSA库生成公钥和私钥,只能以PKCS#1 DER或PEM格式保存公钥和私钥。但是我们有时候需要PKCS#8这种格式

import os
import rsa# 生成一对公钥和私钥
public_key, private_key = rsa.newkeys(2048)# 将公钥以PKCS#1格式写入文件
with open('pub_1.pem', 'wb') as fp:fp.write(public_key.save_pkcs1())# 将私钥以PKCS#1格式写入文件
with open('pri_1.pem', 'wb') as fp:fp.write(private_key.save_pkcs1())# 将公钥由PKCS#1格式转为PKCS#8格式
os.system('openssl rsa --RSAPublicKey_in -in {}.pem -out {}.pem'.format('pub_1', 'pub_8'))# 将私钥由PKCS#1格式转为PKCS#8格式
os.system('openssl pkcs8 -topk8 -inform PEM -in {}.pem -outform pem -nocrypt -out {}.pem'.format('pri_1', 'pri_8'))

PKCS#1格式的公钥pub_1.pem

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAtujniWk75wGxyNUAM1MYA67AhLNFNQfOr5vpxw3fMZxvC0jOJ/33
N5kBW/qfzzJ5i+r03NoRlKMJWyR6hZfBW03HT31b/rfFPgfaPW6yyzuiMH7NKHf+
dmZh6rPAVMyesq8btqC9ZD390R0J8meQhSELIii7B39jKIMIiCYzILwHbtPBHPRx
aZC6tBYJulo3dLd327U1DMtupfp8TfIqCsHIhZcFUMk381uS16QdWaCeibTpXQpC
FpBrCVe0bSsoog//ChUl8phPTjICfu87CWziriFAeV1iF/1XMMs3FO4GL2HeeFIB
AuldchVgXHNOUrq/MwGki/3+VaMOghXmWwIDAQAB
-----END RSA PUBLIC KEY-----

PKCS#1格式的私钥pri_1.pem

-----BEGIN RSA PRIVATE KEY-----
MIIEqgIBAAKCAQEAtujniWk75wGxyNUAM1MYA67AhLNFNQfOr5vpxw3fMZxvC0jO
J/33N5kBW/qfzzJ5i+r03NoRlKMJWyR6hZfBW03HT31b/rfFPgfaPW6yyzuiMH7N
KHf+dmZh6rPAVMyesq8btqC9ZD390R0J8meQhSELIii7B39jKIMIiCYzILwHbtPB
HPRxaZC6tBYJulo3dLd327U1DMtupfp8TfIqCsHIhZcFUMk381uS16QdWaCeibTp
XQpCFpBrCVe0bSsoog//ChUl8phPTjICfu87CWziriFAeV1iF/1XMMs3FO4GL2He
eFIBAuldchVgXHNOUrq/MwGki/3+VaMOghXmWwIDAQABAoIBAQCQWxJZTZd8QscY
VJr65sqeJW5FjOLC7q19xRRlCBqtoeO1yTkDMRnKZFRBTnSP5yssdTvZjbWwVFgO
+aRFCTcOIz15C9vuFQVzZmkkcNhlM2RW18x88u7+bOE8ha72fiOFrFO39/ZhRder
ETsHeBsEJscNp42sZimdqq8Ngb1my5V2xDpxpjcgh14h6nBtQ0LfeRvf0ik3cTVd
wwnvXJ+9o0hR9gHiGcLJnHoZ6/HwE1zqMHBvt3Pdsh371WmTlobVEV9217pDDZvT
xatxTQ9tmixVuVes7rDKp13GrxUDGkz1lA/Uw7ljgjNbGRprs6Y1pEf4KdhrQYbt
uIwQDbgpAoGJAONOqONLUixObWPDAR/1+nr3m4veK7y16t0S1S/rTKiatILPDdzu
rW5bPp0kqs/gzAAa1/MWqI9STRkup+2rMhesiLCd0QYSn1OAVE/M9rmooCL1hqPN
6otOFKp/bVJphW7TPRZJi/3BM09ff3SuPya4Fou9bzEiKFy/MQYFv4lMt4lE8Azg
BwUCeQDN/473QB/2eBqt/4DNeKAB14wPqV4W0Zs+BJBZlljCgSqn1VNmaSdtnlJK
nyMZ2f8bp/QMLPnmluZp/TbIw/gVmPqJRz5ZX4aZx2W0+OPqYA/UeDO8CeGe3lQi
CmT7iOzwQHlTKIjdtTsedLBX09w1+aKhsJjY9d8CgYkAlnAC2puJAQXO5A21et+j
LSse6QzbSYPksve53IMQMy5gdYpvlF7qrXT6Faqk2fvfR9p8PcgrOt+vYxE71tJM
ztpDhRCNvEUq6WqvYjk2uV1ezoRM3bB0oEnG56h6Q+bOhrCLZ2q5mfH58Xg0tJZ1
+Twwv79aDdybdfabjW7UexwpBFJ5xSunuQJ4DiUCGBAbIb1Vd6UXnwQtWHMIdvrW
LxLtafC+SKh+J7zexO9s7pdB0dERLXaH3nqNfcSmiT99WUv7PkPYwyhRnIoIieyO
Z2ybvWtnnGmKnMlDzP8D7mFvUI1LkZrNHEhmnIiQzBj4bODI0mqIwT8W283sUNXj
aOJZAoGIOa5w/xuxRo6SJD2955d319+VvuDYrEk9HBcVbaO4L2OuBgEYha84hgkY
dgArX02w80c6Os5Q3RXGif6BHd9XK4ww6J6Hi2YxJ7Ei5SfZH0v3zBFWczYqoUcd
/4MkPCnT9UpAAsEecB+d81g7AQNdJkSsk38vm5G7CA4A/VFRQqt3PbQaKxcrgw==
-----END RSA PRIVATE KEY-----

PKCS#8格式的公钥pub_8.pem

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhQ8qXky413MduJCplqP
r0xb6Ddy/aTotpCi3iW71mKcar/kMclaVRMIEGVeRVBTL+qfby3pWny7SoeU8INf
g3HJoGix6a49fMdtJjCxDtOzsuKClW395RFXE8ELHgz8IohWjyfHWM6dEB3BBw/S
JUorxbQpSpKJPS8nuyY6lQWga51f3HRPaAaxO1WDGW2X7/nUKYdVHkJuAWihx2l+
P+i3G7o+6DZWpfMAwWEh44ozRJt63MxG4S/JQ2zHJRaJ5P58C1C4c/ZVbaYk6FgY
ZZ7qTaErTS14/7OV3ioV88CoO0SvxvzTyhBSVYohcoU+a+dHEJ6qkAN5UD+f9HH7
zQIDAQAB
-----END PUBLIC KEY-----

PKCS#8格式的私钥pri_8.pem

-----BEGIN PRIVATE KEY-----
MIIEwwIBADANBgkqhkiG9w0BAQEFAASCBK0wggSpAgEAAoIBAQCeFDypeTLjXcx2
4kKmWo+vTFvoN3L9pOi2kKLeJbvWYpxqv+QxyVpVEwgQZV5FUFMv6p9vLelafLtK
h5Twg1+DccmgaLHprj18x20mMLEO07Oy4oKVbf3lEVcTwQseDPwiiFaPJ8dYzp0Q
HcEHD9IlSivFtClKkok9Lye7JjqVBaBrnV/cdE9oBrE7VYMZbZfv+dQph1UeQm4B
aKHHaX4/6Lcbuj7oNlal8wDBYSHjijNEm3rczEbhL8lDbMclFonk/nwLULhz9lVt
piToWBhlnupNoStNLXj/s5XeKhXzwKg7RK/G/NPKEFJViiFyhT5r50cQnqqQA3lQ
P5/0cfvNAgMBAAECggEAd/dTsinQfMyKhw5fFnBT6u1AMpMiKWwlT6ekcoKgcqqT
mk/WlhIBA99Vl1vWlzPGbe7Y4D8vgQR3/q+2UHDi45ZPNfU+T+FzuGaAZyM8u8vd
7DwKbezzagwm0U8HaN7h2jMtvaaqmrLyb3ClNP7EtJf9cCSx0W4zQ0ICamNC5DYt
qAefKYp1Rre/N844/f6T8SdEUO0vq7OuJHhTZ6nZALVCAiUxuB8fSh1zvUQH/st/
9x1uvPRLNl9AtxBf5TvysslNIPTsY3v1mRQ60iMyapVOIXamRIUga678/axJXCFc
harXw40UILmywE0kImwUU5lIgSfOfupMQx6FZY8ZAQKBiQCv6yRfgBeK+BxfpWiA
ns+0o4ZtlPg7/bpJDgXHfyxUW021SJjKiIPcJU2ZMO8oO2asnm0HXBDLGE8OMHZU
/szEJKQOQdYCPEUiiYZuoeoJlusRIUvuymPxfpdp8VLocltgccl6VyPA4/Y6j7xL
oFWEG5nSCoEYcKurKMeQeFG+78vvaQa9CZLJAnkA5gom/ytPyfO5ecH8z19ip1/A
QNqpzAPuAT8kM/jWlRFHtTC43jWa9ZVNnUPj5qKzXp3dvhL/DLYWG9oYCjFSUsS4
S0LuxncRy8hqhLFXSiQAG/56lqrWCMB2BkorKfhgJ+11INApPis8Cqe35wSTBLao
D5XcLT7lAoGIeHr+ijlb5l1OcWMDUzNw5TIpWttvtwZqkqX750l9vrhZXBLAMdWV
GSyjHIua/17PTuGhoiy3g6C+Y+Vk5YksDBlcEjecriNA5gpx+0sA0lh93VmEe6I5
GKeuY2xXb8MCOec0KYmMfwqhFDJkrxa7+qI8ktGG4IopyCtBofwFYFMyxGCVsNnh
oQJ5ANt6VDqg2D+Wih/hNZOlLjsC4CsAdYBxP2NxGtl7UUBofEIjej6IZpBpIuQp
Igeqs/hSJn5zIWS/Vdi8/LK83A6cIjmsYqR4dkI3tWlkyiOytWgAJHYcCJnRBsp5
eTVSBGwT4uyrrq3iEicYXh3L/3k/zJkSIkAJAQKBiCgum23kLcqbY48YilMPFasb
EtkEtLg0XOEGcTYsfFOshuFPcGKZ0jBioWjAcHsi2QQwwUkUrvh31IId2qVrVsqJ
6ngeXErYQ8gAsoHZIypgoNuYdlFQ7nv2M4t2XLN0b00HIYaKytvqWHmo6TvksNda
Eg05AgP11snoe67Il78LnnKuofrww6A=
-----END PRIVATE KEY-----

Python RSA PKCS#1 转 PKCS#8相关推荐

  1. PHP rsa私钥pkcs8加密,Openssl rsa私钥的PKCS#1和PKCS#8格式以及加密和转化

    这里主要介绍: 私钥的PKCS#1格式,及PKCS#8格式 格式PKCS#1和PKCS#8之间的互相转化 私钥的加密,解密 PKCS#1 -> PKCS#8 生成PKCS#1私钥 $ opens ...

  2. 非对称密钥PKCS#1和PKCS#8格式互相转换(Java)

    目录 一.序言 二.代码示例 1.Maven依赖 2.工具类封装 三.测试用例 1.密钥文件 2.公私钥PKCS1和PKCS8格式互相转换 一.序言 之前在 <前后端RSA互相加解密.加签验签. ...

  3. PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?

    今天在看源码的时候,出现了一个后缀pkcs5,很是疑惑,这里来扫盲. 首先PKCS是什么? The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安 ...

  4. (转)Python rsa 签名与验证 sign and verify

    转自:http://wawehi.blog.163.com/blog/static/143780306201371361120515/ 网上一搜一大把的 python rsa 相关的东西,python ...

  5. python rsa加密解密_RSA加密解密(python版)

    RSA的算法涉及三个参数,n.e.d. 其中,n是两个大质数p.q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度. e1和d是一对相关的值,e可以任意取,但要求e与(p-1)*(q-1)互质: ...

  6. 前后端加密解密 【JS加密模块(md5 、 crypto 、 crypto-js、jsencrypt) python RSA加密解密(pycryptodome )模块安装与使用】

    JS加密模块[js-md5(AES) . crypto (AES). crypto-js().jsencrypt(非对称加密.RSA)] 一.安装 npm install js-md5 npm ins ...

  7. python RSA 公钥解密方法

    背景 常见的RSA加解密使用方式是:公钥加密,私钥解密.私钥签名,公钥验签. 但我在项目上却遇到了一个用python解决公钥解密的问题.查了好多资料最后完成了这需求,记录一下. 解决 1.代码示例 i ...

  8. python rsa库_python RSA加密解密

    RSA加密(pip install pycryptodome) 总结: Pycrypto提供了比较完善的加密算法.RSA广泛用于加密与解密,还有数字签名通信领域.使用Publick/Private秘钥 ...

  9. python rsa库_Python中rsa模块【sign 加签验签】的使用

    安装 pip install rsa 使用一 说明:简单入门使用  使用公钥加密  ----------->> 使用私钥进行解密 1 #-*- coding:utf-8 -*- 2 imp ...

最新文章

  1. zen3架构_AMD Zen3架构处理器的L3缓存或将翻倍到64MB
  2. 夺命雷公狗---javascript NO:03 流程结构
  3. Heap(堆结构/优先队列)-Swift实现
  4. miniui列表下拉允许编辑且保存_在职必备,下拉列表|Excel
  5. 通才与专家_那么您准备聘请数据科学家了吗? 通才还是专家?
  6. oracle 根据分隔符提取,oracle使用指定分隔符导出数据到文件
  7. TSYS2.0对动态碎片的一点理解
  8. Django实现微信消息推送
  9. spring boot 打war包部署,打jar包
  10. 系统无法安装High Definition Audio的UAA总线驱动程序之解决方法
  11. 极棒开启AI挑战 全球寻找顶级语音合成“机械师”
  12. 再见虚拟机!在Win10中使用Linux版本的R和Python
  13. 详解MySQL的用户密码过期功能
  14. 智慧环保检测平台Axure原型图
  15. 最优算法-LQR-离散时间有限边界
  16. 正弦余弦定理,求圆弧度或度数
  17. 一、编程基础之计算机基础知识
  18. 视频号该怎么去运营;有人已经利用视频号赚到了第一笔金了丨国仁网络资讯
  19. 2020.11.10课堂笔记(Apache Spark 分布式计算原理)
  20. 芯准TTE“宏时隙“调度机制 ——基本原理

热门文章

  1. Entrust - Laravel 用户权限系统解决方案 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub...
  2. ATA工厂测试AT_MODE下震动不振问题分析
  3. 云计算在未来一年的发展预测
  4. 误删代码,回收站又被清空还没有备份教你如何解决
  5. 计算共形几何讲座笔记
  6. 独家 | 那些令人细思恐极的AI技术,哪一个戳中你的命门?
  7. FACES纳新|2021春纳线上分享会等你来
  8. 记录自己三天速成使用django+html制作国内疫情可视化平台的过程(一)
  9. android学生成绩查询代码,android学生成绩查询系统.pdf
  10. Java String的intern方法