vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Problem beim Verschlüsseln 
Autor: m__o__e
Datum: 15.07.11 11:41

Hallo zusammen,

ich muss ein paar Daten Verschlüsseln um sie in eine DB zu schreiben.

Als ich nach vb.net und verschlüsseln bei google schaute fand ich folgenden Link zu euch:

http://www.vbarchiv.net/tipps/tipp_1351-text-verschluesselung-vbnet.html

hab das Beispiel so wie es dort ist kopiert und eine Beispielanwendung mit dem Code erstellt. Funktioniert.

Anschließend habe ich aus dem Code folgende Klasse erstellt (VerschlüsselnKlasse.vb):

Imports System.Security.Cryptography
Imports System.IO
Imports System.Text
 
Public Class VerschlüsselnKlasse
    Inherits System.Windows.Forms.Form
 
    Function verschlüsseln(ByVal text As String)
        Dim rd As New RijndaelManaged
        Dim md5 As New MD5CryptoServiceProvider
        Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(text))
 
        md5.Clear()
        rd.Key = key
        rd.GenerateIV()
 
        Dim iv() As Byte = rd.IV
        Dim ms As New MemoryStream
 
        ms.Write(iv, 0, iv.Length)
 
        Dim cs As New CryptoStream(ms, rd.CreateEncryptor, _
          CryptoStreamMode.Write)
        Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(text)
 
        cs.Write(data, 0, data.Length)
        cs.FlushFinalBlock()
 
        Dim encdata() As Byte = ms.ToArray()
        Return Convert.ToBase64String(encdata)
        cs.Close()
        rd.Clear()
    End Function
 
    Function entschlüsseln(ByVal text As String)
        MsgBox(text)
        Dim rd As New RijndaelManaged
        Dim rijndaelIvLength As Integer = 16
        Dim md5 As New MD5CryptoServiceProvider
        Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(text.Trim))
 
        md5.Clear()
 
        Dim encdata() As Byte = Convert.FromBase64String(text.Trim)
        Dim ms As New MemoryStream(encdata)
        Dim iv(15) As Byte
 
        ms.Read(iv, 0, rijndaelIvLength)
        rd.IV = iv
        rd.Key = key
 
        Dim cs As New CryptoStream(ms, rd.CreateDecryptor, _
          CryptoStreamMode.Read)
 
        Dim data(ms.Length - rijndaelIvLength) As Byte
 
        Dim i As Integer = cs.Read(data, 0, data.Length)
 
        Return System.Text.Encoding.UTF8.GetString(data, 0, i)
        cs.Close()
        rd.Clear()
    End Function
End Class
und sie wie folgt eingebunden:

Public Class Form1
 
    Inherits System.Windows.Forms.Form
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        TextBox3.Text = VerschlüsselnKlasse.verschlüsseln(TextBox1.Text)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        TextBox1.Text = VerschlüsselnKlasse.entschlüsseln(TextBox3.Text)
    End Sub
 
End Class
Wenn ich dieses nun ausführe erhalte ich beim Klicken von Button2, zuvor wurde natürlich Button1 gedrückt, die Fehlermeldung "Zeichenabstände sind ungültig und können nicht entfernt werden" mit dem Bezug auf die Stelle:

Dim i As Integer = cs.Read(data, 0, data.Length)
Ich habe die Beiträge zu diesem Thema hier im Forum schon gelesen aber die dortigen Gründe treffen bei mir nicht zu. Wo liegt mein Fehler?

Dank und Gruß

MOE
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem beim Verschlüsseln 
Autor: ModeratorFZelle (Moderator)
Datum: 15.07.11 12:41

Dann schau dir nochmal ganz genau an wie da der Key erzeugt wird, und was Du machst.

Da beim ver/entschlüsseln der selbe Key/IV benutzt werden muss solltest du nochmal an den Grundlagen arbeiten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem beim Verschlüsseln 
Autor: m__o__e
Datum: 15.07.11 12:52

Oh du hast ja so recht. Sorry. Hab natürlich zwei unterschiedliche Keys gehabt. Also doch das gleiche Problem wie in nem anderen Thread. Danke fürs Augen weiter öffnen und das Problem ist natürlich gelöst.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel