Функция шифрования VB.Net DES, для Triple DES - PullRequest
0 голосов
/ 14 марта 2012
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, я могу понять, как заставить его использовать Triple DES, а не DES

1 Ответ

1 голос
/ 14 марта 2012

Попробуйте это

       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
...