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 – 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.
-
- Import von “System.Security.Cryptography”
Imports System.Security.Cryptography
- 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
- 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
- Import von “System.Security.Cryptography”
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)
🙂