Tipp 0116 Verschlüsseln mit DES und TripleDES
Autor/Einsender:
Datum:
  Michael Werner
13.04.2006
Entwicklungsumgebung:   VB.Net 2003
Framework:   1.1
Im Namespace System.Security.Cryptography gibt es mehrere Klassen, die verschiedene Verschlüsselungsalgorithmen implementieren. So stehen die Algorithmen Rijndael, DES, TripleDES, RC2 und RSA zur Verfügung. Effektiv wird eine Verschlüsselung erst durch eine Kombination eines symmetrisch und asymmetrischen Verfahrens, wobei meist ein sogenannter privater Schlüssel (symmetrisches Verschlüsselung) mit einem öffentlichen Schlüssel (asymmetrische Verschlüsselung) zusammenspielen.
In diesem Tipp wird verschlüsselt und entschlüsselt, wahlweise mit den Algorithmen DES und TripleDES. Die beiden Methoden CreateEncryptor und CreateDecryptor der Klasse SymmetricAlgorithm erstellen ein symmetrisches Verschlüsselungsobjekt mit dem aktuellen Key und Initialisierungsvektor (IV).
Hinweis:
Wenn Sie diese verschlüsselte Zeichenfolge in Ihrer Anwendung verwenden möchten, müssen Sie sich den generierten Schlüssel und IV notieren, da Sie diese für die Entschlüsselung eingeben müssen. Wenn Sie den Schlüssel und IV verlieren, wird keine Wiederherstellung der Verbindungszeichenfolge mehr möglich sein.
 
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO

  Private Function EncryptString(ByVal Value As String) As String
    Dim ct As ICryptoTransform
    Dim ms As MemoryStream
    Dim cs As CryptoStream
    Dim byt() As Byte

    Try
      ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV)

      byt = Encoding.UTF8.GetBytes(Value)

      ms = New MemoryStream
      cs = New CryptoStream(ms, ct, CryptoStreamMode.Write)
      cs.Write(byt, 0, byt.Length)
      cs.FlushFinalBlock()

      cs.Close()
    Catch
      MessageBox.Show( _
            "Schlüssel und IV müssen zunächst generiert werden!", _
            "Abbruch")
      Exit Function
    End Try
    Return Convert.ToBase64String(ms.ToArray())
  End Function

  Private Function DecryptString(ByVal Value As String) As String
    Dim ct As ICryptoTransform
    Dim ms As MemoryStream
    Dim cs As CryptoStream
    Dim byt() As Byte

    ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV)

    byt = Convert.FromBase64String(Value)

    ms = New MemoryStream
    cs = New CryptoStream(ms, ct, CryptoStreamMode.Write)
    cs.Write(byt, 0, byt.Length)
    cs.FlushFinalBlock()

    cs.Close()

    Return Encoding.UTF8.GetString(ms.ToArray())
  End Function

  Private Function SetEnc() As SymmetricAlgorithm
    If optDES.Checked Then
      Return New DESCryptoServiceProvider
    Else
      If optTripleDES.Checked Then
        Return New TripleDESCryptoServiceProvider
      End If
    End If
  End Function
 
Weitere Links zum Thema
Hashcodes mit MD5 generieren

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (9,6 kB) Downloads bisher: [ 798 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Freitag, 20. Januar 2012