日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RSA公钥文件(PEM)解析

發布時間:2024/7/23 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。