加载中…
个人资料
iPan
iPan
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,064,609
  • 关注人气:234
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

RSA秘钥格式pkcs1与pkcs8相互转换

(2023-04-13 15:40:24)
标签:

rsa

pkcs1

pkcs8

分类: Linux
常用的rsa密钥有两种格式,一种为pkcs1,首尾分别为:
# 公钥
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
# 私钥
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

另一种为pkcs8,首位分别为:
# 公钥
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
# 私钥
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
openssl工具生成的公/私钥均为pkcs1格式,而接口请求数据加密用的rsa库使用的格式为pkcs8格式,于是pkcs1格式公私钥与pkcs8格式公私钥的转换成为必须要解决的问题。

PKCS1私钥转换为PKCS8
openssl pkcs8 -topk8 -inform PEM -in pri.key -outform pem -nocrypt -out pkcs8.pem


PKCS8格式私钥再转换为PKCS1格式
openssl rsa -in pkcs8.pem -out pkcs1.pem


从pkcs1私钥中生成pkcs8公钥
openssl rsa -in private.pem -pubout -out public.pem


从pkcs8私钥中生成pkcs8公钥
openssl rsa -in pkcs8.pem -pubout -out public_pkcs8.pem

pkcs8公钥转pkcs1公钥
openssl rsa -pubin -in public.pem -RSAPublicKey_out


pkcs1公钥转换为pkcs8公钥
openssl rsa -RSAPublicKey_in -in pub_pkcs1.pem -pubout

参考

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有