.net smime电子邮件解密
我正在尝试使用证书和私钥解密已签名和加密的电子邮件。这在加密电子邮件上非常有效。如果电子邮件经过签名和加密,则会在任何文件附件数据的开头和结尾添加额外字符。例如,.net smime电子邮件解密,.net,email,encryption,x509certificate,smime,.net,Email,Encryption,X509certificate,Smime,我正在尝试使用证书和私钥解密已签名和加密的电子邮件。这在加密电子邮件上非常有效。如果电子邮件经过签名和加密,则会在任何文件附件数据的开头和结尾添加额外字符。例如,?/?zhltvqqaamaaaaaaaaa//8AALgAAA…其中?/?z是额外的字符。具体字符将根据附件的类型和大小而有所不同。我可以寻找并去掉那些角色,但我需要知道每一种可能的组合 有没有人知道如何更容易地删除这些字符?下面是我用来解密电子邮件的代码,其中sInput是电子邮件的原始加密字符串: Dim EncryptCert
?/?zhltvqqaamaaaaaaaaa//8AALgAAA…
其中?/?z
是额外的字符。具体字符将根据附件的类型和大小而有所不同。我可以寻找并去掉那些角色,但我需要知道每一种可能的组合
有没有人知道如何更容易地删除这些字符?下面是我用来解密电子邮件的代码,其中sInput
是电子邮件的原始加密字符串:
Dim EncryptCert As New X509Certificate2(sCERTIFICATE, sCERTIFICATE_PASS)
data = Convert.FromBase64String(sInput)
Dim envData As New EnvelopedCms(New ContentInfo(data))
Dim Recipient As New CmsRecipient(SubjectIdentifierType.IssuerAndSerialNumber, EncryptCert)
Dim col As New X509Certificate2Collection(EncryptCert)
envData.Decode(data)
envData.Decrypt(col)
Dim decData As Byte() = envData.ContentInfo.Content
message = Encoding.ASCII.GetString(decData)
同样,只要电子邮件没有签名,这项功能就非常有效。当电子邮件签名时,这些额外的字符被添加到附件数据中,我无法正确解码base64数据,直到它们被删除
顺便说一下,在上面的字符串?/?z
中,/
字符实际上是一个正方形。该编辑器将其更改为正斜杠