如果您尝试读取 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