openssl 如何显示密钥加密算法

openssl 如何显示密钥加密算法

当使用 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

相关内容