当前位置:编程学习 > C#/ASP.NET >>

关于VB.NET XML 加密(急)

Public Class Form2
    Private MyKey As New RijndaelManaged
    Private MyXmlDoc As XmlDocument
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click''''加密XML
        MyXmlDoc.Load("MyXML.xml")
        Dim MyEncryptElement = "ServerName"
        If (MyXmlDoc Is Nothing) Then
            Throw New ArgumentNullException("MyXmlDoc")
        End If
        If (MyEncryptElement Is Nothing) Then
            Throw New ArgumentNullException("ElementToEncrypt")
        End If
        If (MyKey Is Nothing) Then
            Throw New ArgumentNullException("MyKey")
        End If
        Dim MyEncrypt As XmlElement = CType(MyXmlDoc.GetElementsByTagName(MyEncryptElement)(0), XmlElement)
        If (MyEncrypt Is Nothing) Then
            Throw New XmlException("加密元素在XML文件中不存在!")
        End If
        Dim MyEncryptedXml As New EncryptedXml()
        Dim MyXmlElement As Byte() = MyEncryptedXml.EncryptData(MyEncrypt, mykey, False)
        Dim MyEncryptedData As New EncryptedData()
        MyEncryptedData.Type = EncryptedXml.XmlEncElementUrl
        Dim MyEncryptionMethod = ""
        Select Case MyKey.KeySize
            Case 128  '更多vb.net源码和实例,请关注{乐 博 网 lob.cn}
                MyEncryptionMethod = EncryptedXml.XmlEncAES128Url
            Case 192
                MyEncryptionMethod = EncryptedXml.XmlEncAES192Url
            Case 256
                MyEncryptionMethod = EncryptedXml.XmlEncAES256Url
        End Select
        MyEncryptedData.EncryptionMethod = New EncryptionMethod(MyEncryptionMethod)
        MyEncryptedData.CipherData.CipherValue = MyXmlElement
        EncryptedXml.ReplaceElement(MyEncrypt, MyEncryptedData, False)
        Me.TextBox1.Text = MyXmlDoc.InnerXml
        MyXmlDoc.Save("MyXML.xml")
        '     MyXmlDoc.Save("MyEncryptXML.dat")
    End Sub


    Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click'''解密XML
        'Dim MyReader As TextReader = New StringReader(Me.textBox1.Text)
        'MyXmlDoc.Load(MyReader)
        'MyReader.Close()
        MyXmlDoc.Load("MyXML.xml")
        If (MyXmlDoc Is Nothing) Then
            Throw New ArgumentNullException("Doc")
        End If
        If (MyKey Is Nothing) Then
            Throw New ArgumentNullException("Alg")
        End If
        Dim MyXmlElement As XmlElement = CType(MyXmlDoc.GetElementsByTagName("EncryptedData")(0), XmlElement)
        If (MyXmlElement Is Nothing) Then
            Throw New XmlException("没有找到EncryptedData加密元素!")
        End If
        Dim MyEncryptedData As New EncryptedData()
        MyEncryptedData.LoadXml(MyXmlElement)
        Dim MyEncryptedXml As New EncryptedXml()
        Dim MyBytes As Byte() = MyEncryptedXml.DecryptData(MyEncryptedData, MyKey)
        MyEncryptedXml.ReplaceData(MyXmlElement, MyBytes)
        Me.TextBox1.Text = MyXmlDoc.InnerXml
        MyXmlDoc.Save("MyXML.xml")
    End Sub
End Class

请问为什么我运行程序时先进行加密,然后进行解密,都正常

为什么我加密过后,关闭程序再进行解密,就不行呢

--------------------编程问答-------------------- --------------------编程问答-------------------- 就没人知道吗 --------------------编程问答-------------------- 没做过。 --------------------编程问答-------------------- 就这么难吗,没人回么
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,