天天看點

VB.NET DES 簡易算法

'加密方法

    Public Function Encrypt(ByVal pToEncrypt As String, ByVal DesKey As String) As String

        Dim des As New Security.Cryptography.DESCryptoServiceProvider()

        Dim inputByteArray() As Byte

        inputByteArray = System.Text.Encoding.Default.GetBytes(pToEncrypt)

        des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)

        des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)

        Dim ms As New System.IO.MemoryStream()

        Dim cs As New Security.Cryptography.CryptoStream(ms, des.CreateEncryptor, Security.Cryptography.CryptoStreamMode.Write)

        cs.Write(inputByteArray, 0, inputByteArray.Length)

        cs.FlushFinalBlock()

        Dim ret As New System.Text.StringBuilder()

        Dim b As Byte

        For Each b In ms.ToArray()

            ret.AppendFormat("{0:X2}", b)

        Next

        Return ret.ToString()

    End Function

    '解密方法

    Public Function Decrypt(ByVal pToDecrypt As String, ByVal DesKey As String) As String

        Dim des As New Security.Cryptography.DESCryptoServiceProvider()

        Dim len As Integer

        len = pToDecrypt.Length / 2 - 1

        Dim inputByteArray(len) As Byte

        Dim x, i As Integer

        For x = 0 To len

            i = Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)

            inputByteArray(x) = CType(i, Byte)

        Next

        des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)

        des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)

        Dim ms As New System.IO.MemoryStream()

        Dim cs As New Security.Cryptography.CryptoStream(ms, des.CreateDecryptor, Security.Cryptography.CryptoStreamMode.Write)

        cs.Write(inputByteArray, 0, inputByteArray.Length)

        cs.FlushFinalBlock()

        Return System.Text.Encoding.Default.GetString(ms.ToArray)

    End Function