首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X509Certificate加密/解密

X509Certificate加密/解密
EN

Stack Overflow用户
提问于 2009-05-29 16:34:55
回答 1查看 2.1K关注 0票数 7

我刚刚开始学习XML安全性。我们有VS-2005和ASP.Net 2.0。我想将XML发送到外部URL,但需要对其进行加密。我正在做MSDN文章ms229744ms229943正在做的事情,但是在执行DecryptDocument()方法时,我总是得到"Unable to retrieve the decryption“。我正在使用我们的SSL证书,目前我使用X509Certificate对XML进行数字签名,它工作得很好。

我还请其他人从不同的商店尝试,他们得到了相同的错误。X509解密方法有记录在案的问题吗?在下面的测试代码中,我将XML发送到另一个试图解密XML的网页。我不明白的是,如果DecryptDocument()方法甚至不检查公钥是否嵌入,它怎么能工作。这就是问题所在吗?如果是这样,我如何检查以确保它被嵌入到XML中?任何帮助都是非常感谢的。谢谢!

代码语言:javascript
复制
Private Function EncryptXml(ByVal xmlDoc As XmlDocument, ByVal Cert As X509Certificates.X509Certificate2) As XmlDocument

   Dim dataNodes As XmlNodeList = xmlDoc.SelectNodes("Agency")
   If dataNodes.Count <> 1 Then
       Return Nothing 
   End If  
   Dim elementToEncrypt As XmlElement = CType(xmlDoc.GetElementsByTagName("Agency")(0), XmlElement)
   Dim eXml As New EncryptedXml()
   Dim Key As RSACryptoServiceProvider = CType(Cert.PrivateKey, RSACryptoServiceProvider)
   Dim edElement As EncryptedData = eXml.Encrypt(elementToEncrypt, Cert)
   EncryptedXml.ReplaceElement(elementToEncrypt, edElement, False)
   Return xmlDoc 
End Function



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
If Not IsPostBack Then
   If Request.Form("hdnSignedXML") IsNot Nothing Then
   Dim strXML As String = Request.Form("hdnSignedXML")
   Dim xmlDoc As New XmlDocument
   xmlDoc.LoadXml(strXML)
   xmlDoc.PreserveWhitespace = True
   Response.ContentType = "text/plain"
   Response.Write(strXML)

   Dim exml As New Xml.EncryptedXml(xmlDoc)
   exml.DecryptDocument()
   xmlDoc.Save("C:/inetpub/TestExampleDecrypted.xml")


   Response.End()

End If

End Sub

jP

EN

回答 1

Stack Overflow用户

发布于 2011-09-02 03:20:01

很有可能,您的web进程无法访问私钥。我曾经遇到过同样的事情,并在下面的项目中发布了一个答案:

Set read permission for certificate from command line

如果您仍然有问题,在我们的加密例程中,我们引用了http://msdn.microsoft.com/en-us/magazine/cc163454.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/926939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档