1

Verschlüsseln und Entschlüsseln in VB.NET

Das Verschlüsseln und Entschlüsseln in VB.NET ist ein heikles Thema:
Manchmal möchte man Text, Informationen, Daten, etc. nicht leserlich abspeichern, um Dritten nicht gleich alle Daten zur Verfügung zu stellen. Dafür bietet uns VB.NET schon vorgefertigte Möglichkeiten um dies umzusetzen. Wie das mit dem Entschlüsseln und Verschlüsseln in VB.Net funktioniert, seht ihr in diesem Beitrag.

verschlüsseln und entschlüsseln VB.net

Verschlüsseln und Entschlüsseln – Funktionen

Um nun unsere Daten unleserlich zu machen, benötigen wir im Code spezielle Funktionen. Diese Funktionen zum Encrypt und Decrypt könnt ihr einfach kopieren, diese sind danach schon lauffähig. Zuvor müssen wir aber oben im Code und im Projekt “System.Security.Cryptography” importieren, welche wir benötigen.

    1. Import von “System.Security.Cryptography”
      Imports System.Security.Cryptography
      

       

    2. Erstellen einer Funktion “Encrypt” (Verschlüsseln)
      Public Function Encrypt(clearText As String) As String
              Dim EncryptionKey As String = "$kldfKFSAK37236780!!*+++hHUDO723BNU!$hask+*jhds7!2929j$+jP*!hWrT$kldfKFSAK37236780!!*+++hHUDO723BNU!$hask+*jhds7!2929j$+jP*!hWrT"
              Dim clearBytes As Byte() = Encoding.Unicode.GetBytes(clearText)
              Using encryptor As Aes = Aes.Create()
                  Dim pdb As New Rfc2898DeriveBytes(EncryptionKey, New Byte() {&H49, &H76, &H61, &H6E, &H20, &H4D, &H65, &H64, &H76, &H65, &H64, &H65, &H76})
                  encryptor.Key = pdb.GetBytes(32)
                  encryptor.IV = pdb.GetBytes(16)
      
                  Using ms As New MemoryStream()
                      Using cs As New CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write)
                          cs.Write(clearBytes, 0, clearBytes.Length)
                          cs.Close()
                      End Using
                      clearText = Convert.ToBase64String(ms.ToArray())
                  End Using
              End Using
              Return clearText
          End Function
      

       

    3. Erstellen einer Funktion “Decrypt” (Entschlüsseln)
      Public Function Decrypt(cipherText As String) As String
              Dim EncryptionKey As String = "$kldfKFSAK37236780!!*+++hHUDO723BNU!$hask+*jhds7!2929j$+jP*!hWrT$kldfKFSAK37236780!!*+++hHUDO723BNU!$hask+*jhds7!2929j$+jP*!hWrT"
              Dim cipherBytes As Byte() = Convert.FromBase64String(cipherText)
              Using encryptor As Aes = Aes.Create()
                  Dim pdb As New Rfc2898DeriveBytes(EncryptionKey, New Byte() {&H49, &H76, &H61, &H6E, &H20, &H4D, &H65, &H64, &H76, &H65, &H64, &H65, &H76})
                  encryptor.Key = pdb.GetBytes(32)
                  encryptor.IV = pdb.GetBytes(16)
      
                  Using ms As New MemoryStream()
                      Using cs As New CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write)
                          cs.Write(cipherBytes, 0, cipherBytes.Length)
                          cs.Close()
                      End Using
                      cipherText = Encoding.Unicode.GetString(ms.ToArray())
                  End Using
              End Using
              Return cipherText
          End Function
      

In Zeile ‘2’ wird der Key / String hinterlegt, mit dem verschlüsselt bzw. entschlüsselt wird. Dieser ist individuell anpassbar. Natürlich muss dieser in beiden Funktionen gleich sein. Aber das sollte selbsterklärend sein. 😉

Das Nutzen der VB.NET Funktionen zum Entschlüsseln und Verschlüsseln von Texten, beziehungsweise Strings ist kein Hexenwerk. Um im Code die Funktionen zu nutzen, muss man die Funktion aufrufen. Das wird in diesem Beispiel gezeigt:

 

Verschlüsseln und Entschlüsseln – Beispiele

Hier wird der Text aus dem Textfeld “txtName” verschlüsselt und in die Datei “yourfile.txt” geschrieben.

System.IO.File.WriteAllText("yourfile.txt", functions.Encrypt(txtName.Text))

 

Hier wird die Datei “yourfile.txt” gelesen und der Text entschlüsselt.

name = System.IO.File.ReadAllText("yourfile.txt")
name = functions.Decrypt(name)

 

🙂

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

  • Thomas Meier sagt:

    Hallo nach Übernahme in VB 201x steht…
    Encoding.Unicode.GetBytes(clearText)

    Encoding wurde nicht declariert! Aufgrund der Schutzstufe…

    Das wird übernommen!!!
    System.Text.Encoding.Unicode.GetBytes(clearText)

    Ich habe die Funktion noch nicht getestet…. Verschlüsseln

    Mfg. Meier Thomas

  • sidebar
    >