当使用 openssl 生成密钥时,可以选择使用密码加密生成的密钥。
openssl genpkey -algorithm rsa -out rsa.key -aes-128-cbc
在此示例中,CBC 模式下的 AES 128 用于加密文件“rsa.key”中生成的密钥。
如果想要使用 openssl 的密钥,则必须提供密码。
openssl pkcs8 -in rsa.key
Enter Password:
openssl 以某种方式检测密钥加密算法。是否可以使用 openssl 打印出加密密钥使用的加密算法?
答案1
您可以解析密钥文件的 ASN.1 结构,这将包括所使用的算法:
$ openssl genpkey -algorithm rsa -out rsa.key -aes-128-cbc
.........................................+++++
....................................................................+++++
Enter PEM pass phrase: foobar
Verifying - Enter PEM pass phrase: foobar
$ openssl asn1parse -in rsa.key |cut -b-90
0:d=0 hl=4 l=1325 cons: SEQUENCE
4:d=1 hl=2 l= 87 cons: SEQUENCE
6:d=2 hl=2 l= 9 prim: OBJECT :PBES2
17:d=2 hl=2 l= 74 cons: SEQUENCE
19:d=3 hl=2 l= 41 cons: SEQUENCE
21:d=4 hl=2 l= 9 prim: OBJECT :PBKDF2
32:d=4 hl=2 l= 28 cons: SEQUENCE
34:d=5 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:28E5C2C6CDFBE483
44:d=5 hl=2 l= 2 prim: INTEGER :0800
48:d=5 hl=2 l= 12 cons: SEQUENCE
50:d=6 hl=2 l= 8 prim: OBJECT :hmacWithSHA256
60:d=6 hl=2 l= 0 prim: NULL
62:d=3 hl=2 l= 29 cons: SEQUENCE
64:d=4 hl=2 l= 9 prim: OBJECT :aes-128-cbc <=========
75:d=4 hl=2 l= 16 prim: OCTET STRING [HEX DUMP]:7FEB38B0D1568721F586F317E1EADF2F
93:d=1 hl=4 l=1232 prim: OCTET STRING [HEX DUMP]:D7D14657999BD0485DE9C4423A9FFEB2