vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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
Image.FromStream von CryptoStream auf FileStream 
Autor: realkizZ
Datum: 07.09.07 14:19

Hi miteinander,
habe wieder ein kleines Problem und hoff, dass ihr mir helfen könnt.

Ein Bild soll verschickt werden über die Netzwerk-Verbindung (siehe letzten Thread ;) ),
bevor ich mich aber wieder daran begebe, möchte ich die Verschlüsselung gewährleisten und speichere die Bilddaten in einer Datei.

Ich habe zwei Funktionen, die ich zur Verschlüsselung verwende:

    Private Key() As Byte = UTF8.GetBytes("<--fester string-->")
    Private KeyHash() As Byte = Nothing
    Public Function DecryptStream(ByVal UsedStream As Stream) As CryptoStream
        Dim cmd5Provider As New MD5CryptoServiceProvider
        Dim caesProvider As New RijndaelManaged
 
        Dim caesStream As CryptoStream
 
        KeyHash = cmd5Provider.ComputeHash(Key)
 
        With caesProvider
            .Key = KeyHash
            .GenerateIV()
            caesStream = New CryptoStream(UsedStream, .CreateDecryptor(.Key, _
              .IV), CryptoStreamMode.Read)
        End With
 
        Return caesStream
    End Function
    Public Function EncryptStream(ByVal UsedStream As Stream) As CryptoStream
        Dim cmd5Provider As New MD5CryptoServiceProvider
        Dim caesProvider As New RijndaelManaged
        Dim caesStream As CryptoStream
 
        KeyHash = cmd5Provider.ComputeHash(Key)
 
        With caesProvider
            .Key = KeyHash
            .GenerateIV()
            caesStream = New CryptoStream(UsedStream, .CreateEncryptor(.Key, _
              .IV), CryptoStreamMode.Write)
        End With
 
        Return caesStream
    End Function
Die sind in einer Klasse gekapselt. Der Aufruf geschieht über zwei Buttons.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim fStream As FileStream = File.Open("C:\img.jpg", FileMode.Create)
        Dim cStream As CryptoStream
 
        cStream = EncryptStream(fStream)
 
        Dim grabber As New ScreenGrabber(New Rectangle(New Point(0, 0), _
          PictureBox1.Size))
 
        PictureBox1.Image = grabber.GetScreenshot
 
        Dim info As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()
        Dim Params As EncoderParameters = New EncoderParameters(1)
        Params.Param(0) = New EncoderParameter(Encoder.Quality, 100L)
 
        PictureBox1.Image.Save(cStream, info(1), Params)
 
        cStream.Close()
        fStream.Close()
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        Dim fStream As FileStream = File.Open("C:\img.jpg", FileMode.Open)
        Dim cStream As CryptoStream
 
        cStream = DecryptStream(fStream)
 
        Try
            PictureBox1.Image = Image.FromStream(cStream)
        Catch ex As Exception
            MsgBox(ex.Message) ' Gibt "Ungültiger Parameter"
        End Try
 
        cStream.Close()
        fStream.Close()
    End Sub
Hab den Quellcode schnell angepasst, könnte sein, dass kleinere Fehler
enthalten sind. Aber Vorschläge einfach machen... ich werde schon bescheid
sagen, ob es sich nur um einen Flüchtigkeitsfehler handelt, der nur in diesem
Thread vorhanden ist.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Image.FromStream von CryptoStream auf FileStream1.220realkizZ07.09.07 14:19
Re: Image.FromStream von CryptoStream auf FileStream601realkizZ07.09.07 15:06

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