vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Verschlüsselung 
Autor: CarpeDiem
Datum: 08.09.09 07:32

Hi,
nachdem ich beim Abspeichern keine Exception ausgelöst habe, gehe ich davon aus, dass der mögliche Fehler keinen Fehler auslöst.
Ich habe eine Access07_Db. Die Columne hat den Datentyp:Text und weist einen Größe von 255 Zeichen auf.
Die Verschlüsselung:
Try
      conn.Open()
      Dim com As New OleDbCommand("SELECT * FROM tbluser ORDER BY UserID ASC", _
        conn)
      Dim da As New OleDbDataAdapter(com)
      Dim ds As New DataSet()
      da.Fill(ds, "tbluser")
      Dim dt As DataTable = ds.Tables("tbluser")
      Dim cb As New OleDbCommandBuilder(da)
      'Sicher ist sicher!
      If TextBox1.Text <> TextBox2.Text Then
        Dim result As Windows.Forms.DialogResult
        result = MessageBox.Show("Die eingegebenen Passwörter sind nicht" & _
          "ident!" & vbCrLf & _
        "", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
          TextBox1.Text = ""
          TextBox2.Text = ""
          TextBox1.Focus()
      Else
        Dim rd As New RijndaelManaged
        Dim md5 As New MD5CryptoServiceProvider
        Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes( _
          TextBox2.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 encdata() As Byte = ms.ToArray()
 
        Dim dr As DataRow = dt.Rows(0)
        dt.Rows(0)("Passwort") = CStr(Convert.ToBase64String(encdata))
        da.Update(dt)
 
        MessageBox.Show("Verschlüsselung war erfolgreich", _
        "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Me.Dispose()
        Me.Close()
      End If
		Catch sqlExc As Exception
      MessageBox.Show(sqlExc.ToString, "SQL Exception Error!", _
      MessageBoxButtons.OK, MessageBoxIcon.Error)
		Finally
			If conn.State = ConnectionState.Open Then conn.Close()
    End Try
Mir ist klar, dass selbst bei gleichen Passwörtern immer ein neuer Algo generiert wird. Der nachfolgende String dient nur als Ergänzung zur möglichen Problembehebung 'lz0llnbFHnyvyIdoPXyxFw=='
Und nun die Entschlüsselung mit Korrektur:
conn.Open()
      Dim com As New OleDbCommand( _
      ("SELECT * FROM tbluser ORDER BY UserID ASC"), conn)
      Dim dr As OleDbDataReader = com.ExecuteReader()
      dr.Read()
      myEnCrypt = CStr(dr!passwort)
      dr.Close()
      MessageBox.Show(CStr(myEnCrypt)) 'mit DB-Eintrag ident!
      'lz0llnbFHnyvyIdoPXyxFw==
 
      Dim rd As New RijndaelManaged
      Dim rijndaelIvLength As Integer = 16
      Dim md5 As New MD5CryptoServiceProvider
      Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(TextBox1.Text))
      md5.Clear()
      Dim encdata() As Byte = Convert.FromBase64String(myEnCrypt)
      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(CInt(ms.Length - rijndaelIvLength)) As Byte
      Dim data(CInt(ms.Length - rijndaelIvLength - 1)) As Byte
      'Dim i As Integer = cs.Read(data, 0, data.Length) '<----
      Dim i As Integer = cs.Read(data, 0, data.Length - rijndaelIvLength)
Wie ich bereits angedeutet habe, bin ich interessierter Laie, zwecks Beschäftigung der grauen Zellen.
Danke und Grüße
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Verschlüsselung1.391CarpeDiem07.09.09 08:41
Re: Verschlüsselung797sollniss07.09.09 15:02
Re: Verschlüsselung840CarpeDiem07.09.09 19:57
Re: Verschlüsselung785sollniss07.09.09 20:49
Re: Verschlüsselung811ModeratorDaveS07.09.09 21:18
Re: Verschlüsselung798sollniss07.09.09 21:51
Re: Verschlüsselung803CarpeDiem08.09.09 07:15
Re: Verschlüsselung854CarpeDiem07.09.09 21:33
Re: Verschlüsselung824ModeratorDaveS07.09.09 21:45
Re: Verschlüsselung807CarpeDiem08.09.09 07:32
Re: Verschlüsselung904CarpeDiem09.09.09 09:06

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