VB.NET DES 简易算法

来源:互联网 发布:科比1213赛季数据 编辑:程序博客网 时间:2024/05/21 22:49

'加密方法
    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

原创粉丝点击