RSA秘钥格式pkcs1与pkcs8相互转换
(2023-04-13 15:40:24)
标签:
rsapkcs1pkcs8 |
分类: 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
参考
后一篇:Jetty性能调优的思路