如果您试图读取 PKCS#1 RSA 公钥,您会遇到麻烦,因为 openssl 希望公钥采用 X.509 样式。
PKCS#1 RSA 公钥
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAgYxTW5Yj+5QiQtlPMnS9kqQ/HVp+T2KtmvShe68cm8luR7Dampmb
[...]
cbn6n2FsV91BlEnrAKq65PGJxcwcH5+aJwIDAQAB
-----END RSA PUBLIC KEY-----
.. 不可读,而 X.509 样式的公钥
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgYxTW5Yj+5QiQtlPMnS9
[..]
JwIDAQAB
-----END PUBLIC KEY-----
是可读的。您可以使用一个简单(且粗陋)的解决方法来读取 PKCS#1 RSA。X.509 样式的公钥的前几个字节包含头信息,可以无耻地复制。
换句话说:从上面的 X.509 密钥中删除第一个 32 字节之后的所有内容(从 Q8A 后面开始),并将您的 PKCS#1 数据附加到该密钥,重新格式化为 64 字节长度,并与 openssl 一起使用。
请注意:以上示例仅适用于 2048 位长度。
正如我所说 - 这是一个有点粗陋的方法 - 但嘿 - 如果你像我一样绝望。
Michaela