Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0010: Eine Datei verschlüsseln

 von 

Beschreibung

Manchmal sollen gewisse Daten nicht ungesichert auf der Festplatte gespeichert werden. An dieser Stelle helfen uns die .NET-Basisklassen mit der einfach verwendbaren CryptoStream-Klasse, für die ein Vielzahl an Verschlüsselungsalgorithmen zur Verfügung gestellt wird.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008

Download:

Download des Beispielprojektes [1,61 KB]

' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2002/2003
' Option Strict:    Aus
' Option Explicit:  An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.XML
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Data
'  - System.Diagnostics
'

' ##############################################################################
' ################################ Module1.vb ##################################
' ##############################################################################
Imports System.Security.Cryptography
Imports System.IO
Module Module1
  Sub Main()
    ' Das "geheime" Passwort
    Dim pwd As String = "passwort"

    ' Die Klasse, die den verwendeten Verschlüsselungs-
    ' algorithmus darstellt.
    Dim DES As New DESCryptoServiceProvider()
    With DES
      ' Das Passwort muss als Bytearray gesetzt werden.
      .Key = System.Text.Encoding.ASCII.GetBytes(pwd)
      .IV = System.Text.Encoding.ASCII.GetBytes("12345678")
    End With
    ' Der Stream, der in die Datei schreibt.
    Dim fstream As New FileStream("crypto.txt", _
      FileMode.Create)
    ' Der CryptoStream, der die Verschlüsselung
    ' übernimmt.
    Dim cstream As New CryptoStream(fstream, _
      DES.CreateEncryptor(), _
      CryptoStreamMode.Write)
    ' Der CryptoStream bietet nur die Möglichkeit
    ' an Bytes zu schreiben. Deswegen machen wir uns 
    ' das Ganze etwas leichter.
    Dim swriter As New StreamWriter(cstream)

    ' Text schreiben und Stream schließen
    swriter.Write(Console.ReadLine)
    swriter.Close()

    ' -----------------------------------
    ' ------ Text wieder auslesen -------
    ' -----------------------------------
    fstream = New FileStream("crypto.txt", FileMode.Open)
    cstream = New CryptoStream(fstream, _
      DES.CreateDecryptor, _
      CryptoStreamMode.Read)
    Dim sreader As StreamReader = New StreamReader(cstream)

    Console.WriteLine(sreader.ReadLine())

    sreader.Close()
  End Sub
End Module

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Daniel Zielinski am 14.11.2011 um 17:57

HAllo!
Das tool (VB.NET-Tipp 0010) ist echt toll und absolut übertragbar udn brauchbar. Gibt es vielleicht ein paar tips zur entschlüsselung der verschlüsselten Daten? Ich habe Probleme den Code umzuschreiben.
Viele Grüße!

Kommentar von oeko am 24.02.2006 um 19:14

na einfach die Dateiausgabe in einen String Umleiten...

Kommentar von Balduin am 22.11.2005 um 18:29

Wie kann ich einen String als Ausgabe für den CryptoStream verwenden?