首页 > 解决方案 > 将 RSA 公钥从 der 转换为 pub

问题描述

我有一个 der 格式的公共 RSA 密钥,我必须将其用作加密的集成机制。
问题是当我尝试将该密钥与节点加密库一起使用时,它会抛出错误。在文档中,我找不到如何使用 der 格式。
尝试使用 openssl 命令将 der 文件转换为 pem -

 openssl rsa -RSAPublicKey_in -in m2p-test-public.der -inform DER -outform PEM -out m2p-test-public.pem -RSAPublicKey_out

它在扔——

_out unable to load Public Key 140477267113624:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1217: 140477267113624:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:386:Type=RSA

我究竟做错了什么 ?任何帮助将不胜感激。

添加 ASN.1 解码的输出

SEQUENCE (2 elem) SEQUENCE (2 elem) OBJECT IDENTIFIER 1.2.840.113549.1.1.1 rsaEncryption (PKCS #1) NULL BIT STRING (1 elem) SEQUENCE (2 elem) INTEGER (2048 bit) XXXXX INTEGER YYYYY

将数字块替换为 XXXX、YYYY

标签: rsa

解决方案


默认情况下,openssl 需要一个私钥。当您提供公钥时,您必须指定-pubin并且它将正确加载。

openssl rsa -pubin -in m2p-test-public.der -inform DER -outform PEM -out m2p-test-public.pem

推荐阅读