解密.p7m 文件

解密.p7m 文件

我有一个要解密的 .p7m 文件。它是用我的 ca.pem 文件加密的。我有 ca.crt、ca.pem 和 ca.key

我尝试了几种方法来解密,例如:

openssl smime -verify -in file.p7m -inform der -noverify -signer ca.pem -out textdata

但它们都不起作用。

我设法从收到的加密电子邮件中提取了一些信息:

openssl smime -decrypt -in email.eml -inkey ca.key > mail.txt

并得到 base64 原始数据

--===============3728737985443050612==
Content-Type: application/octet-stream; Name="mails.p7"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="mails.p7"

RnJvbTogdHJ1bHlfk3j4h5g6kl34g6kk45hl6kb3VzQHlvdXdvbnRmaW5kbWUub3JnClRvOiBwZXRzLXR1d0BhcHBz
ZWMuYXQKU3ViamVjdDogSnVzdCBzbyB5b3Uga25vdwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic21pbWUucDdtIgpDb250ZW50LVR5
cGU6IGFwcGxpY2F0aW9uL3gtcGtjczctbWltZTsgc21pbWUtdHlwZT1lbnZlbG9wZWQtZGF0YTsg
bmFtZT0ic21pbWUucDdtIgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKCk1JSUJt
Z1lKS29aSWh2Y05BUWNEb0lJQml6Q0NBWWNDQVFBeGdnRkNNSUlCUGdJQkFEQ0JwakNCbURFTE1B
a0cKQTFVRUJoTUNjkherltkhjelrk4q4235qwtefsdCQWdNQmxacFpXNXVZVEVQTUEwR0ExVUVCd3dHVm1sbGJt
NWhNUkF3RGdZRApWUVFLREFkVVZTQlhhV1Z1TVJVd0V3WURWUVFMREF4VFFrRWdVbVZ6WldGeVky
Z3hHVEFYQmdOVkJBTU1FRUZzClpYaGhibVJsY2lCU1lYTm9aV1F4SXpBaEJna3Foa2lHOXcwQkNR
RVsdafsdasdqwe54q34512345xd2JHVkFertsergslkj34l5kj2h34lk5GMEFna0E2b1FQNjBVSkl4QXdEUVlKS29aSWh2
Y05BUUVCQlFBRWdZQ1ZiMGwybU83ek9NamhvbktaV3BMNwpoYks5dGI3aEVEVXhuWjNUM2wvWWVl
UExXTkw2VHI0cE50Zjh6L0ZxOUtvTWxnVzZzQ0dWVU5GbGxDemVzZXBhCkhLTHp4Q1RFWHl4bzRB
bStxeXVuVHFpMUVuWGJ3Tzg0YmtDeGVEUEhKU3M2bzhHVzRSdlErSG9yNFJ1Ydfgsdfgsdf
ZldnN29vRkZuUUZCRnZWREE4QmdrcWhraUc5dzBCQndFd0hRWUpZSVpJQVdVREJBRXFCQkNNNm5o3345345dsgfdfgsed0JCT1NFNGNjdXgxUVRXY0VEb1dWeVVZCgo=

--===============3728737985443050612==--

然后我尝试:

openssl enc -d -base64 -in base64.raw -out result.txt

但这也不起作用。

我究竟做错了什么?

答案1

为了解密加密的电子邮件,openssl smime -decrypt应该是正确的方法。但是,首先,openssl smime需要将 mime 消息作为输入,而不仅仅是 p7m 附件。另外,要解密,您需要指定收件人的私钥。这应该有效:

openssl smime -decrypt -in email.eml -recip recipient.pem

email.eml是保存的 ASCII 文本格式的电子邮件,recipent.pem 是 PEM 格式的私钥。请注意,PEM 格式与它是公钥还是私钥/证书无关。在您的问题中,尚不清楚您的文件采用哪种格式ca.key,但私钥通常以 PKCS12 文件格式存储。要将 PKCS12 格式(p12 或 pfx 文件后缀)转换为 PEM,您可以使用

openssl pkcs12 -in recipient.p12 -out recipient.pem

相关内容