在OpenSSL中读取不带封装标头的Base64私钥



我正在尝试使用带有openssl的私钥解密消息。当我使用以下格式的私钥时,我的实现工作正常

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDDEOX/tFJZrgR0dtTN2/jgPAJjWKE68aw8ayYaGn9fo1sJAE3C
uH6Ym3hu775Enfd5DhtJ38g8RCFLzGVP/LW6n4+LsKS5HRZTGcDkpME0sVoLHLZd
w8z4xZe5h+lT0jwkap5BNyHJCSddipxzjQIEtW+w8V6BkKkFw6UYN1Xn5QIDAQAB
AoGAUeS0Ssfvksrl/+crrElfkPRgpEi/V7nCb5Mkae0Z8JLqUzsXalp+e585zolE
PhZ7oQz1E+ypafPIbsQe/JfByx3itUk7J8+bZO4TpE8n5Afz8EdZLIqJU11MoafH
mWYYWsoMdymgxasuu0ygyeswP42/aw1M+qQgoWBSoPtgLrkCQQDsygWQRI868JKJ
OXzeKV6HTKjGXg37Zm050UaPk2a8inGk6F5RqH1+IZ4istrlcJTpJTuQCsVHJ+SQ
nLveL09vAkEA0uRPeSdXbi92AR/5fj2Xh2APerYjRgK11nh4QEiqbmKyNdW7r9zb
tIQiL9f4AXvcwIVnSWVgiTCwWOa9w8lT6wJBAOMlWPjwC8YqiSeCMjqbzMZVz4Gb
MCZ+N0FDdEC+0csDs8jR78i9rMSWUzBOCpYWzYJp6R1gd6auqh/feojFMZkCQQCO
Gkly2Y+QL2rUVzdGWTpBffjwNsqN4kWkvohIyK4Os3Jh1CMj3S4t9NsUYfI7Dbsx
/rIaQrVJvAUX4mL8Ci0BAkEAuAZBSTmd7MQybVlWCP1AVvlMyW1CV/Mts4tLsGO5
NRMuXY0CrQaO69MW4nuHCSmshBcNB7ahGxYYYMaHmem3QQ
-----END RSA PRIVATE KEY-----

当我尝试使用相同的密钥而不使用封装标头(-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY----- (时,它失败了。

这些标头对于密钥是否是必需的?

如果我想使用没有标头的密钥,我应该使用OpenSSL的哪个API?

密钥格式的类型由 PEM 编码密钥的页眉和页脚定义。在内部,它只是一个PKCS#1私钥。有关格式的详细信息,可以在此处查看此问答或 ASN.1 解码密钥。

所以虽然所有的信息都是在 base 64 编码的中间实现中可能无法直接解析它,主要是因为结构的类型是未知的。

但是,您可以对 base 64 进行解码并将其用作 OpenSSL 中的密钥。在这种情况下,您可能需要指定-inform DER或类似内容。

最新更新