RSA公钥文件(PEM)解析
RSAPublicKey ::= SEQUENCE {
modulus INTEGER, //RSA合数模n
publicExponent INTEGER //RSA公开幂e
}
说明:
1.此语法中的modulus和publicExponent,提取自对应私钥中的同名域值。
2.PKCS1和PKCS8的公钥文件是一样的,没有区别。
本文适用范围:已知公钥结构各域值,组装RSA公钥文件,即PEM文件。
PEM文件组成是TLV结构。
一、数据实例,各域值如下:
1.modulus:
AB602562101207D05A6C413E24CE42699210388F5D31D28151E0FA9141D9C8F8
AC716C0C4F449616AA2270F1007CF3BA46F05131E402266B2A628F4B70142429
93F5BC06E3C0609F9E52BE8D5D0CFACF53C2EE98533A9818828EC5CB8120A688
ADC603DBE65DF9059AD8039644897896943912D81C76856AB7E380C1530C6DE0
E155D4C9FB943967C52EB147CDBF2464AC2B631055DBE3109491A067567AE515
FD36428930FABCAC7C0FEB906C11815B6F00462E588DEB81C4364E2B62540E92
69F49487CC4F8724DDC481C5134B86108C9FACD5D7187706ACA2D3425BFE4F11
9C254273FA5C91EEA5EB06154936D27EE62266CDCAE9E34D20229360559325C7
2.publicExponent:
00000003
二、组装PEM文件
1.按照以上数据域顺序依次组装成TLV。
①modulus组装
0282010100
AB602562101207D05A6C413E24CE42699210388F5D31D28151E0FA9141D9C8F8
AC716C0C4F449616AA2270F1007CF3BA46F05131E402266B2A628F4B70142429
93F5BC06E3C0609F9E52BE8D5D0CFACF53C2EE98533A9818828EC5CB8120A688
ADC603DBE65DF9059AD8039644897896943912D81C76856AB7E380C1530C6DE0
E155D4C9FB943967C52EB147CDBF2464AC2B631055DBE3109491A067567AE515
FD36428930FABCAC7C0FEB906C11815B6F00462E588DEB81C4364E2B62540E92
69F49487CC4F8724DDC481C5134B86108C9FACD5D7187706ACA2D3425BFE4F11
9C254273FA5C91EEA5EB06154936D27EE62266CDCAE9E34D20229360559325C7
说明:
02 - tag
82 - 81代表长度用1byte表示,82代表长度用2byte表示(此字节部分tag后不存在)
0101 - length 2bytes表示
00 - 在modulus数据前添加00,原因未知,请知情道友告知。
②publicExponent组装:
020103
说明:
02 - tag
01 - length
03 - 00000003 在公钥组装中,舍弃0x00;私钥组装中,保留0x00
2.输出PEM文件
①公钥PEM文件头,嵌套多层TLV,本实例文件头为:
30820120 300d06092a864886f70d0101010500 0382010d 0030820108
说明:
30820120
30 - tag
82 - 代表length由2bytes表示
0120 - length (2bytes)
30 0d 06092a864886f70d0101010500
30 - tag
0d - length
06092a864886f70d0101010500 - value
03 82 010d
03 - tag
82 - 代表length由2bytes表示
010d - value (2bytes),代表长度
00 3082 0108
00 - 补0x00,原因未知,请知悉者不吝赐教
30 - tag
82 - 代表length由2bytes表示
0108 - value(2bytes),代表长度。
②依次输出以上组装后的数据到PEM文件。
至此,PEM文件已生成。
本文实例数据对应PEM文件,如图:
对此PEM文件进行Base64编码,即得到RSA公钥:
—–BEGIN PUBLIC KEY—–
MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAq2AlYhASB9BabEE+JM5CaZIQOI9dMdKB
UeD6kUHZyPiscWwMT0SWFqoicPEAfPO6RvBRMeQCJmsqYo9LcBQkKZP1vAbjwGCfnlK+jV0M+s9T
wu6YUzqYGIKOxcuBIKaIrcYD2+Zd+QWa2AOWRIl4lpQ5EtgcdoVqt+OAwVMMbeDhVdTJ+5Q5Z8Uu
sUfNvyRkrCtjEFXb4xCUkaBnVnrlFf02Qokw+rysfA/rkGwRgVtvAEYuWI3rgcQ2TitiVA6SafSU
h8xPhyTdxIHFE0uGEIyfrNXXGHcGrKLTQlv+TxGcJUJz+lyR7qXrBhVJNtJ+5iJmzcrp400gIpNg
VZMlxwIBAw==
—–END PUBLIC KEY—–
转载自:http://blog.csdn.net/xuanshao_/article/details/51679824
RSA公钥文件(PEM)解析相关推荐
- (PKCS1) RSA 公私钥 pem 文件 提取 公私钥 e d 和 模数 n
参考链接:RSA公钥文件(PEM)解析 参考链接:OPENSSL中RSA私钥文件(PEM格式)解析[一] 参考:使用openssl命令剖析RSA私钥文件格式 RSA PKCS8 与 PKCS1 公私钥 ...
- RSA私钥文件(PEM-PKCS#1)解析
在PKCS#1 RSA算法标准中定义RSA私钥语法 RSAPrivateKey ::= SEQUENCE { version Version, //版本 modulus INTEGER, // R ...
- (一)--使用RSA公钥证书解密
最近要用rsa的公钥解密,这个公钥存储在公钥证书里面,这个公钥证书呢- 安装在了windows操作系统里.以下是讲解部分,如果不想看的直接跳跃到最末尾的代码部分. 公钥–>公钥证书–>公钥 ...
- 小王的尴尬日常(一)--使用RSA公钥证书解密
最近接了一个活,要用rsa的公钥解密,这个公钥存储在公钥证书里面,这个公钥证书呢- 安装在了windows操作系统里.以下是讲解部分,如果不想看的直接跳跃到最末尾的代码部分. 公钥–>公钥证书– ...
- 非对称加密算法RSA公钥私钥的模数和指数提取方法
生成非对称加密算法RSA公钥.私钥的方法: 1. 通过OpenSSL库生成,可参考 https://github.com/fengbingchun/OpenSSL_Test/blob/master/ ...
- python rsa 公钥解密_python利用rsa库做公钥解密的方法教程
前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...
- java中使用openssl生成的rsa公私钥进行数据加解密_使用openssl生成RSA公钥和私钥对...
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- 使用OpenSSL加密,使用Java解密,使用OpenSSL RSA公钥
抽象 在2017年,我撰写了一个由三部分组成的系列文章,内容涉及选择最佳的哈希和加密算法. 在对该系列进行研究时,我学到了很多有关哈希和加密的知识. 我学到的最重要的事情是,尽管我必须对如何使用最安全 ...
- python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/8013009.html 作者:窗户 Q ...
最新文章
- AutoCAD.NET API 最新(2012)教程下载及在线视频教程DevTV 第8讲 用户界面
- RocketMQ-控制台的安装与启动
- 第一周 第二天的linux学习
- docker常用参数详解,docker run常用参数详解(精)
- CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
- Xendesktop 5.0与view 4.5对比的看法
- idea找不到或无法加载主类问题解决
- 视频消重软件大全 视频md5修改器哪个好用
- 魔兽世界服务端linux,LightsHope/vMangos – 基于Ubuntu服务器的WOW私服搭建教程
- Windows远程桌面如何设置分辨率
- hdu5294Tricks Device【最短路+网络流】
- 重磅报告 | 《中国企业2020:人工智能应用实践与趋势》
- 没学历可以学IT吗?
- com.sec.android.ofvi,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
- 云队友丨在注意力稀缺的时代,专注是你成败的关键筹码
- jQuery框架的介绍以及基本用法--操作dom
- 蒸妙集团把中药熏蒸以现代科技结合中医古法用于疏通身体的“堵”
- 【Python】照片扩展信息提取
- 解决XWPFRun的addPicture方法无法显示图片的问题
- 云周刊】第177期:马云见证!蚂蚁金服推出全球首个区块链跨境汇款服务
热门文章
- 未来的趋势发展 802.11v网络协议解析
- SQL Server 2012从零开始学pdf
- DOM查找元素的方法总结
- 用css、html编写一个两列布局的网页,名称为css.html ,要求左侧宽度为200px ,右侧自动扩展...
- WebClient 上传文件
- Kneser猜想与相关推广
- SQL的经典语句(太全了)
- 牛客15666 又见斐波那契(矩阵快速幂)
- slow log php,善用php-fpm的慢执行日志slow log,分析php性能问题
- sql加上唯一索引后批量插入_MySQL当批量插入遇上唯一索引