MimeKit 使用 AES 加密消息
MimeKit encrypt Message with AES
我想用 MimeKit 对邮件进行加密和签名。
生成消息有效:
CmsRecipient CmsRecipient = new CmsRecipient("mail.cer");
CmsRecipient.EncryptionAlgorithms = new EncryptionAlgorithm[] { EncryptionAlgorithm.Aes192 };
to1.Add(CmsRecipient);
var signed = MultipartSigned.Create(ctx, signer, multipart);
var encrypted = ApplicationPkcs7Mime.Encrypt(ctx, to1, signed);
message.Body = MultipartSigned.Create(ctx, signer, encrypted);
在 Outlook 中,它们以以下方式加密:168 位 3DES
但我需要 AES 265。我该如何管理它?
我可以使用
将签名设置为 RSA/SHA512
signer.DigestAlgorithm = DigestAlgorithm.Sha512;
但不是加密。
编辑:更新到我的解决方案
CmsSigner 指定 DigestAlgorithm,但 CmsRecipient 指定收件人支持的加密算法。
MimeKit 选择加密算法的方式是找出每个收件人支持的最佳加密算法,然后使用它。
换句话说,如果您要加密给 5 个收件人并且他们都支持 AES256,那么 MimeKit 将使用 AES256。但是,如果其中一个收件人仅支持 3DES(并且所有其他收件人 也 支持 3DES 以及 AES256),则选择 3DES。
我想用 MimeKit 对邮件进行加密和签名。
生成消息有效:
CmsRecipient CmsRecipient = new CmsRecipient("mail.cer");
CmsRecipient.EncryptionAlgorithms = new EncryptionAlgorithm[] { EncryptionAlgorithm.Aes192 };
to1.Add(CmsRecipient);
var signed = MultipartSigned.Create(ctx, signer, multipart);
var encrypted = ApplicationPkcs7Mime.Encrypt(ctx, to1, signed);
message.Body = MultipartSigned.Create(ctx, signer, encrypted);
在 Outlook 中,它们以以下方式加密:168 位 3DES 但我需要 AES 265。我该如何管理它?
我可以使用
将签名设置为 RSA/SHA512 signer.DigestAlgorithm = DigestAlgorithm.Sha512;
但不是加密。
编辑:更新到我的解决方案
CmsSigner 指定 DigestAlgorithm,但 CmsRecipient 指定收件人支持的加密算法。
MimeKit 选择加密算法的方式是找出每个收件人支持的最佳加密算法,然后使用它。
换句话说,如果您要加密给 5 个收件人并且他们都支持 AES256,那么 MimeKit 将使用 AES256。但是,如果其中一个收件人仅支持 3DES(并且所有其他收件人 也 支持 3DES 以及 AES256),则选择 3DES。