⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symmetricexample.vb

📁 在C#中实现加密解密
💻 VB
字号:
Imports System
Imports System.Xml
Imports System.IO
Imports System.Security.Cryptography
Imports System.Windows
Imports System.Windows.Forms

Public Class SymmetricExample
    Private key As Byte() = {11, 2, 7, 24, 16, 22, 4, 38, 27, 3, 11, 10, 17, 15, 6, 23}
    Private iv As Byte() = {1, 2, 3, 4, 5, 6, 17, 8, 9, 10, 11, 12, 13, 14, 15, 16}
    Private cryptoprovider As RijndaelManaged = New RijndaelManaged()
    Private filename As String = "c:\SymmetricExample.xml"

    Public Server As String = "(local)"
    Public Database As String = "Northwind"
    Public User As String = "sa"
    Public Password As String = ""
    Public Provider As String = "SQLOLEDB"

    Public Sub Decrypt()
        If Not File.Exists(filename) Then
            Me.Encrypt()
        End If

        Try
            Dim FileReader As FileStream = New FileStream(filename, FileMode.Open)
            Dim CryptoReader As CryptoStream = New CryptoStream(FileReader, cryptoprovider.CreateDecryptor(key, iv), CryptoStreamMode.Read)
            Dim XmlReader As XmlTextReader = New XmlTextReader(CryptoReader)
            Dim XmlDoc As XmlDocument = New XmlDocument()
            Dim XPath As String = "/Configuration/Data/"

            XmlDoc.Load(XmlReader)
            XmlReader.Close()
            CryptoReader.Close()
            FileReader.Close()

            Me.Server = XmlDoc.SelectSingleNode(XPath & "Server").InnerText
            Me.Database = XmlDoc.SelectSingleNode(XPath & "Database").InnerText
            Me.User = XmlDoc.SelectSingleNode(XPath & "User").InnerText
            Me.Password = XmlDoc.SelectSingleNode(XPath & "Password").InnerText
            Me.Provider = XmlDoc.SelectSingleNode(XPath & "Provider").InnerText
        Catch e As CryptographicException
            Me.Server = ""
            Me.Database = ""
            Me.Provider = ""
            Me.User = ""
            Me.Password = ""

            MessageBox.Show("Invalid encryption key!\nDetails: " + e.Message, "Cryptography Example", _
             MessageBoxButtons.OK, MessageBoxIcon.Error)
        Catch e As ArgumentException
            Me.Server = ""
            Me.Database = ""
            Me.Provider = ""
            Me.User = ""
            Me.Password = ""

            MessageBox.Show("Invalid encryption key!\nDetails: " + e.Message, "Cryptography Example", _
             MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Public Sub Encrypt()
        Dim FileWriter As FileStream = New FileStream(filename, FileMode.Create)
        Dim CryptoWriter As CryptoStream = New CryptoStream(FileWriter, cryptoprovider.CreateEncryptor(key, iv), CryptoStreamMode.Write)
        Dim XmlWriter As XmlTextWriter = New XmlTextWriter(CryptoWriter, System.Text.Encoding.UTF8)

        XmlWriter.WriteStartDocument()
        XmlWriter.WriteStartElement("Configuration")
        XmlWriter.WriteStartElement("Data")
        XmlWriter.WriteElementString("Server", Me.Server)
        XmlWriter.WriteElementString("Database", Me.Database)
        XmlWriter.WriteElementString("User", Me.User)
        XmlWriter.WriteElementString("Password", Me.Password)
        XmlWriter.WriteElementString("Provider", Me.Provider)
        XmlWriter.WriteEndElement()
        XmlWriter.WriteEndElement()
        XmlWriter.WriteEndDocument()

        XmlWriter.Close()
        CryptoWriter.Close()
        FileWriter.Close()
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -