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 - Ein- und Umsteiger
Mal wieder die Verschlüsselung... 
Autor: chrixko
Datum: 28.05.09 22:06

Hallo,

ich habe folgendes Problem:

Wenn ich eine Datei verschlüssele und wieder entschlüssele hab ich folgendes Problem
Das Resultat ist fast richtig, jedoch ersetzt er die ersten 10-15 zeichen mit kryptischen Zeichenfolgen, die aussehen als wären sie noch aus der Verschlüsselung übrig geblieben.
z.B.
Vor der Verschlüssslung:
DPASKPAKSDPAKSDPOKSADPKASPDKPSADO
ASDÜASKD
ASDKp
aSKDpaKSDPKASPDKAPSDKPOASKDPOASKDPOKSADPOKASDPKASD+pasDK*P*Ds
ad
23
1234$"§$§"%$$§"%"§$"§$%"§%"§$)Z $!="$ !"?$ 
!"§$*"!*$' "'
Nach der Entschlüsselung:
&#8222;Û¨Ô*ÇÂd9&#376;­&#8226;&#8249;e&#8222;<|qý$ñ&#8216;¹|ñ&#8249;öDPA_
  SKPAKSDPAKSDPOKSADPKASPDKPSADO
ASDÜASKD
ASDKp
aSKDpaKSDPKASPDKAPSDKPOASKDPOASKDPOKSADPOKASDPKASD+pasDK*P*Ds
ad
23
1234$"§$§"%$$§"%"§$"§$%"§%"§$)Z $!="$ !"?$ 
!"§$*"!*$' "'
Weis jemand eine Lösung?



Zum Ver- und Entschlüsseln benutze ich folgenden Code:
Verschlüsseln:
  Public Shared Sub EncryptFile(ByVal sSource As String, ByVal sTarget As _
    String, Optional ByVal BufferSize As Long = 4096)
        Dim ErrorHappened As Boolean = False
        Dim OldFileStream As FileStream
        Dim NewFileStream As FileStream
        Dim CrypStream As CryptoStream
    Try
        Dim key As String = "mypw"
        Dim RijndaelManaged As New RijndaelManaged
        RijndaelManaged.Key = SecurityFunctions.GetPasswordHashInBytes(key)
 
         OldFileStream = New FileStream(sSource, FileMode.Open)
         NewFileStream = New FileStream(sTarget, FileMode.Create)
 
        RijndaelManaged.GenerateIV()
        NewFileStream.Write(RijndaelManaged.IV, 0, RijndaelManaged.IV.Length)
 
          CrypStream = New CryptoStream(NewFileStream, _
            RijndaelManaged.CreateEncryptor, 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)
                CrypStream.Write(Data, 0, Buffer)
                Exit Do
            End If
 
            Buffer = OldFileStream.Read(Data, 0, BufferSize)
            CrypStream.Write(Data, 0, BufferSize)
            BufferCount += Buffer
        Loop
 
 
        CrypStream.Close()
 
    Catch ex As Exception
        MsgBox("Fehler beim Verschlüsseln!" & vbCrLf & ex.Message)
        ErrorHappened = True
    Finally
      NewFileStream.Close()
      OldFileStream.Close()
    End Try
    If ErrorHappened Then
      My.Computer.FileSystem.DeleteFile(sTarget)
    End If
  End Sub
Entschlüsseln:
    Public Shared Sub DecryptFile(ByVal sSource As String, ByVal sTarget As _
      String, Optional ByVal BufferSize As Long = 4096)
        Dim ErrorHappened As Boolean = False
        Dim OldFileStream As FileStream
        Dim NewFileStream As FileStream
        Dim CrypStream As CryptoStream
    Try
        OldFileStream = New FileStream(sSource, FileMode.Open)
        NewFileStream = New FileStream(sTarget, FileMode.Create)
        Dim RijndaelManaged As New RijndaelManaged()
 
 
        Dim iv() As Byte
        ReDim iv(RijndaelManaged.IV.Length - 1)
        NewFileStream.Write(RijndaelManaged.IV, 0, RijndaelManaged.IV.Length)
        RijndaelManaged.IV = iv
 
        CrypStream = New CryptoStream(OldFileStream, _
          RijndaelManaged.CreateDecryptor( _
          SecurityFunctions.GetPasswordHashInBytes("mypw"), _
          RijndaelManaged.IV), CryptoStreamMode.Read)
 
        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 = CrypStream.Read(Data, 0, FileLen - BufferCount)
                NewFileStream.Write(Data, 0, Buffer)
                Exit Do
            End If
 
            Buffer = CrypStream.Read(Data, 0, BufferSize)
            NewFileStream.Write(Data, 0, BufferSize)
 
            BufferCount += Buffer
        Loop
        CrypStream.Close()
    Catch ex As Exception
 
        MsgBox("Entschlüsselung fehlgeschlagen!" & vbCrLf & ex.Message)
        ErrorHappened = True
    Finally
        NewFileStream.Close()
        OldFileStream.Close()
    End Try
    If ErrorHappened Then
      My.Computer.FileSystem.DeleteFile(sTarget)
    End If
  End Sub
Bei Google finde ich nur den Hinweis, dass eventuell etwas mit dem IV nicht stimmt. Vll kann mir jemand sagen ob es bei mir daran liegt.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mal wieder die Verschlüsselung...1.080chrixko28.05.09 22:06
Re: Mal wieder die Verschlüsselung...671ModeratorDaveS28.05.09 22:19
Re: Mal wieder die Verschlüsselung...687chrixko28.05.09 22:36

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