今天我发现有两种带有 PEM 格式标头的公钥格式,例如
X.509 SubjectPublicKeyInfo** (PEM header: BEGIN PUBLIC KEY)
对应于短标头形式;
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzsQ7MkLsc1lJ8S2WtItN
cfj7pbdB6PVcRHEEjbie97Rqthkr6h2WE5rVj0BZNwFjs4NIUYws2KeQjexZ8NEY
qpcP9iPMjdNgLpU8uL03QMti+y+y0IU4493KxKxjprjtu6no0/O5TwNs+/r+7hmF
/8d+2mhyLJQbtuvQQ6mvg6roCMuqzRS91SObzT1ojCjY+AbUrmVZ5jmklHCv7uah
EoTsB3S7wHCBRmelh2j5fWrRBay4h0IB/NSrt1dO/UEVmDSWGjnG+RsDMhYGZXJ1
hJawhqrbuVRZvrMyzqQ0j1xy5buS6jqSHA3wdOixdI8dDpvBnUDGqEIU6gl2Am7h
pwIDAQAB
-----END PUBLIC KEY-----
and
PKCS#1 RSAPublicKey* (PEM header: BEGIN RSA PUBLIC KEY)
对应于较长的形式;
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA1+skaD+II3MYF/0iGDcFX/E6b0XzSC8I2RapRaCL84EqY8HxWGKn
+7p34ZJwZx9avX0cCUqvTmS6LtuoSGrdLlahrz1qEnkdYqlo9HXXQiKtA9iwaiId
LxPtCnJnGMOMtolwKAJpsr+l68D41mWvvibrwPbeTJsFi0zvrN0rL1YbVYvw3X85
fQm+wgo3s8I5sOWwlkADvfD37KxteEPitfb2cvGfYo+VIhBqqXQUhQSC3jBAUc5o
+P8U3eu84ln2YqiIg9P/iM99HoKFECJ2+mxWM8oz0rS8oqthVOck+KZ7mBiYjEzW
3ytTJIUpX9Sl88oDqkz7Azku/GVEiJNWSQIDAQAB
-----END RSA PUBLIC KEY-----
我想验证后一种格式的一些公钥,但是我看不到 openssl 命令行工具显然可以做到这一点。 -pubout 导出第一个格式,pubin 格式拒绝第二个标头;
#openssl rsa -pubin -in rsa.pub -modulus -noout
unable to load Public Key
140154809448256:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PUBLIC KEY
关于 openssl 的正确命令是什么,或者是否有一些工具可以从命令行执行此操作,有什么建议吗?
我不认为 openssl 命令行程序(rsa)可以读取 PKCS#1 格式。正如所解释的here http://www.sivachandran.in/2012/09/exporting-rsa-public-key-in-pkcs1-format.htmlPKCS#1 和 PKCS#8 格式之间的区别在于算法标识符。 RSA 加密的算法标识符是“1.2.840.113549.1.1.1”,其 Base64 版本是“MIIBIjANBgkqhkiG9w0BAQEFAOCAQ8A”,您可以安全地使用 RSA 公钥的 Base64 前缀,并将页眉/页脚从“BEGIN RSA PUBLIC”更改密钥”/“结束 RSA 公钥”到“开始公钥”/“结束公钥”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)