Encryption 连续的OpenSSL PKCS12生成产生不同的私钥内容

Encryption 连续的OpenSSL PKCS12生成产生不同的私钥内容,encryption,openssl,certificate,private-key,pkcs#12,Encryption,Openssl,Certificate,Private Key,Pkcs#12,当使用相同的密钥和证书文件创建PKCS12 PKCS12/p12文件时,我注意到每次使用相同的导入密码和PEM密码时,对OpenSSL的PKCS12功能的连续调用都会产生不同的加密私钥内容。这应该发生吗?我猜这与另一个IV初始化向量或与私钥对称加密相关的salt有关,但我想确定一下 我使用以下命令创建cred1.p12和cred2.p12文件: openssl pkcs12 -export -in certs/cert.pem -out cred1.p12 -name "My credentia

当使用相同的密钥和证书文件创建PKCS12 PKCS12/p12文件时,我注意到每次使用相同的导入密码和PEM密码时,对OpenSSL的PKCS12功能的连续调用都会产生不同的加密私钥内容。这应该发生吗?我猜这与另一个IV初始化向量或与私钥对称加密相关的salt有关,但我想确定一下

我使用以下命令创建cred1.p12和cred2.p12文件:

openssl pkcs12 -export -in certs/cert.pem -out cred1.p12 -name "My credentials" -inkey private/key.pem
openssl pkcs12 -export -in certs/cert.pem -out cred2.p12 -name "My credentials" -inkey private/key.pem
当我比较生成的.p12文件diff cred1.p12 cred2.p12导致二进制差异时,我使用以下命令创建两个PKCS12 info文本文件,并在其上执行另一个diff

唯一的区别在于---开始加密私钥---和---结束加密私钥---标记之间的区别,私钥内容保存在这些标记中


提前谢谢

是的,这是预期的行为。OpenSSL默认使用DES-EDE3加密PKCS12文件中的私钥。每次加密时,它都会生成一个随机值,这将更改加密的有效负载。当您查看-info输出时,您将看到如下内容:

DEK-Info: DES-EDE3-CBC,558C30D119D6944F

逗号后的数据是十六进制编码的8字节salt。

是,这是预期行为。OpenSSL默认使用DES-EDE3加密PKCS12文件中的私钥。每次加密时,它都会生成一个随机值,这将更改加密的有效负载。当您查看-info输出时,您将看到如下内容:

DEK-Info: DES-EDE3-CBC,558C30D119D6944F

逗号后的数据是十六进制编码的8字节salt。

非常感谢您的解释!:谢谢你的解释D