【问题标题】:MimeKit encrypt Message with AESMimeKit 使用 AES 加密消息
【发布时间】:2017-05-11 14:25:00
【问题描述】:

我想使用 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;

但不是加密。

编辑:更新到我的解决方案

【问题讨论】:

    标签: c# .net email smime mimekit


    【解决方案1】:

    CmsSigner 指定 DigestAlgorithm,但 CmsRecipient 指定收件人支持的加密算法。

    MimeKit 选择加密算法的方式是找出每个接收者支持的最佳加密算法,然后使用它。

    换句话说,如果您要加密到 5 个收件人并且他们都支持 AES256,那么 MimeKit 将使用 AES256。但是,如果其中一个接收者仅支持 3DES(并且所有其他接收者支持 3DES 和 AES256),则选择 3DES。

    【讨论】:

    • 您好,感谢您的回答。你能解释一下 MimeKit 如何找出支持的最佳加密算法吗?超过证书?我只有一个收件人。
    猜你喜欢
    • 2021-07-22
    • 2022-01-18
    • 2017-11-08
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多