Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net smime电子邮件解密_.net_Email_Encryption_X509certificate_Smime - Fatal编程技术网

.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
中,
/
字符实际上是一个正方形。该编辑器将其更改为正斜杠