[vb.net] rijndael verschlüsselung. Fehler bei String länge

mich4el

Grünschnabel
Hallo ich habe folgendes problem undzwar möchte ich gerne einen String verschlüsseln und anschließend wieder entschlüsseln, dass funktioniert soweit auch ganz gut nur wenn der string zu lang wird geht es nicht mehr.


hier meine funktionen zum verschlüsseln & entschlüsseln
Code:
    Private Function encryptmessage(ByVal message As String) As String
        Dim rd As New RijndaelManaged
        Dim md5 As New MD5CryptoServiceProvider
        Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes("**********"))

        md5.Clear()
        rd.Key = key
        rd.GenerateIV()

        Dim iv() As Byte = rd.IV
        Dim ms As New MemoryStream

        Dim cs As New CryptoStream(ms, rd.CreateEncryptor, CryptoStreamMode.Write)
        Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(message)

        cs.Write(data, 0, data.Length)
        cs.FlushFinalBlock()

        Dim encdata() As Byte = ms.ToArray

        cs.Close()
        rd.Clear()
        Return Convert.ToBase64String(encdata)

    End Function

Code:
Private Function decryptmessage(ByVal incommingmessage As String) As String
        Dim rd As New RijndaelManaged
        Dim RijndaelovLength As Integer = 16
        Dim md5 As New MD5CryptoServiceProvider
        Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes("****************"))

        md5.Clear()

        Dim encdata() As Byte = Convert.FromBase64String(incommingmessage)
        Dim ms As New MemoryStream(encdata)
        Dim iv(15) As Byte

        ms.Read(iv, 0, RijndaelovLength)
        rd.IV = iv
        rd.Key = key

        Dim cs As New CryptoStream(ms, rd.CreateDecryptor, CryptoStreamMode.Read)
        Dim data(ms.Length - RijndaelovLength) As Byte
        Dim i As Integer = cs.Read(data, 0, data.Length)

        Return System.Text.Encoding.UTF8.GetString(data, 0, i)

    End Function

es kommt denn immer der Fehler " Die Länge der zu entschlüsselnden Daten ist ungültig. "
Bei kürzeren Text so > 3000 - 5000 zeichen geht es.
 

Neue Beiträge

Zurück