vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes 
Autor: Pdd
Datum: 02.05.08 17:09

Public Class RC4FileCutter
 
    Private _thread As Thread
    Private _Crypter As RC4Crypter
 
    Private _fileIn As FileStream
    Private _fileInPath As String
    Private _fileOut As FileStream
    Private _fileOutPath As String
    Private _partsize As PartSize
 
    Private _joinFiles As List(Of String)
 
    Private _process As Byte
 
    Public Event FileSplitted(ByVal files As List(Of String), ByVal num As Long)
    Public Event FileJoined(ByVal filename As String)
 
    Enum PartSize
        KB16 = 16 * 1024
        KB32 = 32 * 1024
        KB64 = 64 * 1024
        KB128 = 128 * 1024
        KB256 = 256 * 1024
        KB512 = 512 * 1024
        KB1024 = 1024 * 1024
        KB2048 = 2048 * 1024
        KB4096 = 4096 * 1024
    End Enum
 
    Public Sub New(ByVal key As String)
        _Crypter = New RC4Crypter(key)
    End Sub
 
    Public Sub Split(ByVal filename As String, ByVal size As PartSize, ByVal _
      fileout As String)
        Try
            _fileIn = New FileStream(filename, FileMode.Open)
            _fileOutPath = fileout
            _fileInPath = filename
            _partsize = size
            _process = 0
            _thread = New Thread(AddressOf SplitJob)
            _thread.Start()
        Catch e As Exception
            'Throw...
        End Try
    End Sub
 
    Private Sub SplitJob()
        Dim buffer() As Byte
        Dim files As New List(Of String)
        Dim i As Long
 
        Try
            If _fileIn.Length <= _partsize Then
                ' Nur einen Part erstellen
 
                files.Add(_fileOutPath)
                _fileOut = New FileStream(_fileOutPath, FileMode.Create)
 
 
                ReDim buffer(_fileIn.Length)
                _fileIn.Read(buffer, 0, buffer.Length)
                _Crypter.Crypt(buffer)
                _fileOut.Write(buffer, 0, buffer.Length)
                _fileOut.Flush()
                _fileOut.Close()
 
                RaiseEvent FileSplitted(files, 1)
            Else
                ' Mehr als ein Part
                For i = 0 To (_fileIn.Length \ _partsize)
                    ' Stream erstellen
                    _fileOut = New FileStream(getNumeratedFileName( _
                      _fileOutPath, i), FileMode.Create)
                    ' Datei mit auf die Liste
                    files.Add(getNumeratedFileName(_fileOutPath, i))
 
                    ReDim buffer(_partsize)
                    _fileIn.Read(buffer, 0, buffer.Length)
                    _Crypter.Crypt(buffer)
                    _fileOut.Write(buffer, 0, buffer.Length)
 
                    ' Fortschritt
                    _process = Math.Round((((i + 1) * _partsize) / _
                      _fileIn.Length) * 100, 0)
                Next
 
                ' Überlauf
                If (_fileIn.Length Mod _partsize) > 0 Then
                    ' Letzter Part
                    files.Add(getNumeratedFileName(_fileOutPath, i + 1))
                    _fileOut = New FileStream(getNumeratedFileName( _
                      _fileOutPath, i + 1), FileMode.Create)
                    ReDim buffer(_fileIn.Length Mod _partsize)
                    _fileIn.Read(buffer, 0, buffer.Length)
                    _Crypter.Crypt(buffer)
                    _fileOut.Write(buffer, 0, buffer.Length)
                End If
 
                _fileOut.Flush()
                _fileOut.Close()
                _fileIn.Close()
                _process = 100
 
                RaiseEvent FileSplitted(files, files.Count)
            End If
        Catch e As ThreadAbortException
 
        End Try
    End Sub
 
    Public Sub Join(ByVal filenames As List(Of String), ByVal fileout As String)
        _joinFiles = filenames
        _fileOutPath = fileout
        _thread = New Thread(AddressOf JoinJob)
        _thread.Start()
    End Sub
 
    Public Sub JoinJob()
        Try
            Dim buffer() As Byte
            _fileOut = New FileStream(_fileOutPath, FileMode.Create)
            For Each a As String In _joinFiles
                _fileIn = New FileStream(a, FileMode.Open)
                ReDim buffer(_fileIn.Length)
                _fileIn.Read(buffer, 0, buffer.Length)
                _Crypter.Crypt(buffer)
                _fileOut.Write(buffer, 0, buffer.Length)
                _fileIn.Close()
 
                ' Fortschritt
                _process = Math.Round(((_joinFiles.IndexOf(a) / _
                  _joinFiles.Count) * 100), 0)
            Next
 
            _fileOut.Flush()
            _fileOut.Close()
 
            RaiseEvent FileJoined(_fileOutPath)
        Catch e As ThreadAbortException
 
        End Try
 
    End Sub
 
    ...
 
End Class
So. Hier ist jetzt der Rest des Codes (leicht gekürzt). Was meinst du mit dieser Unicode-Byte Umwandlung? Wird Unicode nicht auch einfach mit 2

Bytes pro Zeichen statt einer gespeichert? (Die Datei die ich zum Umwandeln benutzt habe, war übrigens ein JPEG.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.844Pdd02.05.08 16:41
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.355Melkor02.05.08 16:50
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.436Pdd02.05.08 17:09
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.317Melkor02.05.08 17:58
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.481Pdd03.05.08 12:35
Re: RC4 Dateitrennung und -verschlüsselung. Angehängte Bytes1.365Melkor03.05.08 13:09

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