vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 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 - Fortgeschrittene
File cryption 
Autor: JackInBlack
Datum: 04.10.08 19:25

Hallo liebe vbarchiv Gemeinde,

ich habe hier im Forum einen Beispielcode bzgl. des Verschlüsseln von Dateien gefunden, allerdings hab ich Probleme diesen richtig zu verstehen. Es geht um diesen Code:

    Public Function EncryptFile(ByVal sSource As String, ByVal sTarget As _
      String, ByVal sPassword As String, Optional ByVal BufferSize As Long = _
      4096) As Boolean
        Try
            Dim sKey As Byte() = (New UnicodeEncoding).GetBytes( _
              sPassword.PadRight(8, "*"))
            Dim OldFileStream As New FileStream(sSource, FileMode.Open)
            Dim NewFileStream As New FileStream(sTarget, FileMode.Create)
            Dim RijndaelManaged As New RijndaelManaged
            Dim CryptoStream As New CryptoStream(NewFileStream, _
              RijndaelManaged.CreateEncryptor(sKey, sKey), _
              CryptoStreamMode.Write)
 
            Dim Data(BufferSize) As Byte
            Dim Buffer As Long
            Dim BufferCount As Long
            Dim FileLen As Long = OldFileStream.Length
 
            Do
                If BufferCount >= FileLen - BufferSize Then
                    ReDim Data(FileLen - BufferCount)
                    Buffer = OldFileStream.Read(Data, 0, FileLen - BufferCount)
                    CryptoStream.Write(Data, 0, Buffer)
                    Exit Do
                End If
 
                Buffer = OldFileStream.Read(Data, 0, BufferSize)
                CryptoStream.Write(Data, 0, BufferSize)
                BufferCount += Buffer
            Loop
 
            OldFileStream.Close()
            CryptoStream.Close()
            NewFileStream.Close()
        Catch
            Return False
        End Try
        Return True
    End Function
Was ich hier nicht verstehe ist, wenn ich ein Key mit 8 Zeichen länge angebe funktioniert alles perfekt, geb ich allerdings einen längeren Key ein, funktioniert es nicht mehr. Kann mir einer erklären warum?

Genausowenig kann ich die folgenden Zeile verstehen:

Dim sKey As Byte() = (New UnicodeEncoding).GetBytes( _
sPassword.PadRight(8, "*"))
und

Dim CryptoStream As New CryptoStream(NewFileStream, _
RijndaelManaged.CreateEncryptor(sKey, sKey), _
CryptoStreamMode.Write)
Frage zum esten Code: was bedeutet hier ...sPassword.PadRight(8, "*") und warum wird hier genau 8 angegeben?

Frage zum zweiten Code: warum wird bei .CreateEncryptor(sKey, sKey) - zweimal sKey übergeben?

Wie könnte ich die Routine so erweitern dass er mit jeglicher Länger des Keys funktioniert?

Danke schon mal im vorraus.

Sch?ne Gr??e
JackInBlack

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
File cryption990JackInBlack04.10.08 19:25
Re: File cryption581ModeratorDaveS04.10.08 19:57
Re: File cryption584JackInBlack04.10.08 20:01
Re: File cryption590ModeratorDaveS04.10.08 20:30
Re: File cryption579JackInBlack04.10.08 22:50
Re: File cryption619ModeratorDaveS05.10.08 09:27

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