0
Public Shared Function DESEncrypt(ByVal Data As String, ByVal Key As String) As Byte()
    Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
    Try
        Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Left(Key, 8))
        Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(Data)
        Dim des As New DESCryptoServiceProvider
        Dim ms As New MemoryStream
        Dim cs As New CryptoStream(ms, des.CreateEncryptor(bykey, IV), CryptoStreamMode.Write)
        cs.Write(InputByteArray, 0, InputByteArray.Length)
        cs.FlushFinalBlock()
        Return ms.ToArray()
    Catch ex As Exception
    End Try
End Function

这是我目前的 DES 加密,但由于我对 VB.Net 还很陌生,我可以弄清楚如何使它使用三重 DES 而不是 DES

4

1 回答 1

1

试试这个

       Public Shared Function DESEncrypt(ByVal Data As String, ByVal Key As String) As Byte()
    Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
    Try
        Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Left(Key, 24))


        If String.IsNullOrEmpty(Data) Then

            Throw New ArgumentException("No data passed", "input")

        ElseIf bykey Is Nothing OrElse bykey.Length <> 24 Then

            Throw New ArgumentException("Invalid Key. Key must be 24 bytes length", "key")

        End If

        Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(Data)

        Using ms As New IO.MemoryStream

            Using des As New Security.Cryptography.TripleDESCryptoServiceProvider


                Using cs As New Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(bykey, IV), Security.Cryptography.CryptoStreamMode.Write)

                    cs.Write(InputByteArray, 0, InputByteArray.Length)
                    cs.FlushFinalBlock()
                    Return ms.ToArray()

                End Using

            End Using

        End Using

    Catch ex As Exception
    End Try

End Function
于 2012-03-14T05:08:57.363 回答