日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

RSA公钥文件(PEM)解析

發(fā)布時(shí)間:2024/7/23 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RSA公钥文件(PEM)解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
公鑰語法為:?

RSAPublicKey ::= SEQUENCE {?
modulus INTEGER, //RSA合數(shù)模n?
publicExponent INTEGER //RSA公開冪e?
}

說明:

1.此語法中的modulus和publicExponent,提取自對(duì)應(yīng)私鑰中的同名域值。

2.PKCS1和PKCS8的公鑰文件是一樣的,沒有區(qū)別。


本文適用范圍:已知公鑰結(jié)構(gòu)各域值,組裝RSA公鑰文件,即PEM文件。

PEM文件組成是TLV結(jié)構(gòu)。

一、數(shù)據(jù)實(shí)例,各域值如下:

1.modulus:?
AB602562101207D05A6C413E24CE42699210388F5D31D28151E0FA9141D9C8F8?
AC716C0C4F449616AA2270F1007CF3BA46F05131E402266B2A628F4B70142429?
93F5BC06E3C0609F9E52BE8D5D0CFACF53C2EE98533A9818828EC5CB8120A688?
ADC603DBE65DF9059AD8039644897896943912D81C76856AB7E380C1530C6DE0?
E155D4C9FB943967C52EB147CDBF2464AC2B631055DBE3109491A067567AE515?
FD36428930FABCAC7C0FEB906C11815B6F00462E588DEB81C4364E2B62540E92?
69F49487CC4F8724DDC481C5134B86108C9FACD5D7187706ACA2D3425BFE4F11?
9C254273FA5C91EEA5EB06154936D27EE62266CDCAE9E34D20229360559325C7

2.publicExponent:?
00000003

二、組裝PEM文件

1.按照以上數(shù)據(jù)域順序依次組裝成TLV。?
①modulus組裝?
0282010100?
AB602562101207D05A6C413E24CE42699210388F5D31D28151E0FA9141D9C8F8?
AC716C0C4F449616AA2270F1007CF3BA46F05131E402266B2A628F4B70142429?
93F5BC06E3C0609F9E52BE8D5D0CFACF53C2EE98533A9818828EC5CB8120A688?
ADC603DBE65DF9059AD8039644897896943912D81C76856AB7E380C1530C6DE0?
E155D4C9FB943967C52EB147CDBF2464AC2B631055DBE3109491A067567AE515?
FD36428930FABCAC7C0FEB906C11815B6F00462E588DEB81C4364E2B62540E92?
69F49487CC4F8724DDC481C5134B86108C9FACD5D7187706ACA2D3425BFE4F11?
9C254273FA5C91EEA5EB06154936D27EE62266CDCAE9E34D20229360559325C7

說明:?
02 - tag?
82 - 81代表長(zhǎng)度用1byte表示,82代表長(zhǎng)度用2byte表示(此字節(jié)部分tag后不存在)?
0101 - length 2bytes表示??
00 - 在modulus數(shù)據(jù)前添加00,原因未知,請(qǐng)知情道友告知。

②publicExponent組裝:?
020103

說明:?
02 - tag?
01 - length?
03 - 00000003 在公鑰組裝中,舍棄0x00;私鑰組裝中,保留0x00

2.輸出PEM文件?
①公鑰PEM文件頭,嵌套多層TLV,本實(shí)例文件頭為:?
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),代表長(zhǎng)度

00 3082 0108?
00 - 補(bǔ)0x00,原因未知,請(qǐng)知悉者不吝賜教?
30 - tag?
82 - 代表length由2bytes表示?
0108 - value(2bytes),代表長(zhǎng)度。

②依次輸出以上組裝后的數(shù)據(jù)到PEM文件。

至此,PEM文件已生成。?
本文實(shí)例數(shù)據(jù)對(duì)應(yīng)PEM文件,如圖:?

對(duì)此PEM文件進(jìn)行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—–

轉(zhuǎn)載自:http://blog.csdn.net/xuanshao_/article/details/51679824

總結(jié)

以上是生活随笔為你收集整理的RSA公钥文件(PEM)解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。