Announcement

Collapse
No announcement yet.

CryptoSystem, Stream: Suchvorgänge werden vom Stream nicht unterstützt ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CryptoSystem, Stream: Suchvorgänge werden vom Stream nicht unterstützt ?

    Hallo NG, bei der Entwicklung meines Programmes bin ich auf das nächste Problem gestoßen.

    Ich verwende in meinem Programm ein Picture-Control (wer's kennt: GdPicture) zur Darstellung von diversen Grafikformaten. Dieses Control hat eine Methode: DisplayFromStream( Stream ). Hierüber kann man die gewünschte Datei in dem Control anzeigen.

    Wenn ich einen FileStream nutze geht das auch.

    Ich habe jedoch die Grafikdateien verschlüsselt und will das verschlüsselte Format beim Einlesen entschlüsseln, was ich über "System.Security.Cryptography" realisiert habe. Eigentlich wollte ich die Grafikdateien mit "CryptoStream" einlesen.

    Wenn ich aber den "CryptoStream" an das Picture-Control übergebe, bekomme ich ein Exception: {"Suchvorgänge werden vom Stream nicht unterstützt."}. Das schein ein Problem des CryptoStreams zu sein bzw. ein Unterschied zum normalen FileStream.

    Hat jemand eine Idee, wie ich das umgehen oder ändern kann.

    Mir hat jemand empfohlen, dass ich die Datei mit dem CryptoStream zuerst in den Speicher lesen soll und danach mit einem MemoryStream an das Picture-Control übergeben soll. Geht das? und Wie?

    mfg
    Georg Gebert

  • #2
    Hat jemand eine Idee, wie ich das umgehen oder ändern kann.
    Wenn dann nur mir einem ganz simplen Verschlüsselungsverfahren wo die Verschlüsselung an einer Position x unabhängig von den Daten vorher im Stream ist. Nur dann macht es ja Sinn gezielt an eine bestimmte Stelle im Stream springen zu können wenn man die auch dann entschlüsseln kann. Ich denke aber das der Cryptostream auch dann grundsätzlichen das direkte positionieren verhindert den der von mir geschilderte Fall ist nun wirklich zu banal als das man das berücksichtigen sollte und Leute deswegen anfangen irgendein lächerliches Verschlüssselungsverfahren einzusetzen damit ein Seek im Stream funktioniert.

    Warum benutzt du überhaupt einen Stream? Wenn du das Image (als ganzes) visualisieren willst brauchst du eh alle Image Daten gleichzeitig im Speicher. Sehe jetzt keinen Grund dann dafür einen Stream zu verwenden.

    Wenn du wirklich willst kannst du natürlich die Daten aus dem CryptoStream in einen MemoryStream kopieren. Es gib ja Read Write Methoden an den Streams. Einfach in einer Schleife vom einen Stream lesen und in den anderen schreiben. Wenn es um wirklich große Datenmengen geht bitte in kleinen Häppchen kopieren. Ab Framework 4 gibts auch eine CopyTo Methode um zwischen Streams zu kopieren. Wie Resourcenschonend die beim kopieren vorgeht weiß ich aber gerade nicht.


    Edit : Falls 'Mir hat jemand empfohlen ...' ein unterschwelliger Hinweis darauf war das du diese Frage bereits in einem anderen Forum gestellt hast erinnere ich dich kurz daran das heimliche Crossposts extrem unbeliebt sind. Wenn du also bereits wo anders gefragt hast dann verlinke diesen Beitrag bitte hier damit wir nicht anfangen Dinge unnötigerweise nochmal durchzukauen die ein anderer bereits geleistet hat.

    Comment


    • #3
      Keine Sorge, dass Crossposting kann ich auch nicht leiden. Ich halte mich an Regeln, wenn ich sie kenne.

      Comment

      Working...
      X