Autor Beitrag
karozocker
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 13:18 
Hi community,
Ich habe das problem, dass ich ein Bild nicht mithilfe eines Streamreaders verlustfrei auslesen kann.
Zum verständniss bräuchte ich eine Methode ein Bild so als string zu laden, wie es im editor angezeigt werden würde.

Bei meinen bisherigen Versuchen wurde bei den verschiedenen Encodern immer nur ein 3-5 stelliger string ausgegeben - außer bei UTF32, jedoch dauert das Lesen dann sehr lange und 9 von 10 Zeichen sind die gleichen Rechtecke. (ASCII 6573 ?!)

Danke schonmal im Voraus für eure Hilfe
karozocker
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 08.03.11 14:32 
Interessantes Problem :D .
Dem Editor kommst du wahrscheinlich mit Encoding.Default und dem Ignorieren von '\x0' am nächsten.

_________________
>λ=

Für diesen Beitrag haben gedankt: karozocker
karozocker Threadstarter
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 15:43 
Ok aber dann bleibt mir kaum etwas vom Text übrig, und da ich ihn als pseudo-One-Time-Pad zur Verschlüsselung von Daten benutzen will sollte es ein möglichst langer Text sein.
Es muss auch nach dem einlesen NICHT (sry für den edit hab ich sauber verplant) wieder umkehrbar sein -> ich kann alle möglichen Algorythmen dazwischenschalten.

Danke
karozocker


Zuletzt bearbeitet von karozocker am Di 08.03.11 18:08, insgesamt 1-mal bearbeitet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 08.03.11 17:05 
Wha... ich hätte wohl doch lieber zuerst nachfragen sollen, was du damit vorhast ;) .
Die Anzeige des Editors ist sicher nicht umkehrbar. Aber ein Passwort besteht doch auch nicht zwingend aus lesbarem Text :nixweiss: . Das sind beliebige Daten, also nimm einfach das Bild so wie es ist, ganz ohne verlustbehaftetes Encoding dazwischen.

_________________
>λ=
karozocker Threadstarter
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 17:46 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
ein Passwort besteht doch auch nicht zwingend aus lesbarem Text. Das sind beliebige Daten, also nimm einfach das Bild so wie es ist, ganz ohne verlustbehaftetes Encoding dazwischen.

Da hast du natürlich Recht ;) Mir ist nur nicht klar, wie ich das Bild als Schlüssel verwenden kann, wenn ich es nicht in einen String umwandle.
Ich arbeite weiter an meinem Verschlüsselungstool, um es zu verbessern, ich habe auf meiner hp die Versionen 1.1 und 1.2 hochgeladen - kannst du dir ja mal ansehen.
Dann war die Idee, dass ich ein Bild in das key Textfeld lade / als key- variable verwende.
hp: www.pseminar-epple.jimdo.com
ziemlich kaputte aktuelle Testversion: www.share-online.biz/dl/4XSZWQHLJL9

MfG
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 08.03.11 18:10 
An die Daten kommst du jedenfalls per File.ReadAllBytes. Wie es dann weitergeht, kommt auf die Verschlüsselung an ;) .

_________________
>λ=

Für diesen Beitrag haben gedankt: karozocker
karozocker Threadstarter
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 19:23 
Ok, ich kann inzwischen die Zeichen so einlesen wie ich will (vgl. Editor):

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public string readAll(string path, int keyLength)
    {
        try
        {
            byte[] b = File.ReadAllBytes(path);
            string s = "";
            for(int i = 0; i <= keyLength; i++)
            {
                char c = (char)b[i];
                s += c.ToString();
            }
            return s;
        }
        catch { return "Fehler beim Einlesen des Schlüssels!"; }
    }


Jedoch gibt er mir egal was ich bei keyLength eingebe nur eine Handvoll Zeichen aus ??
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 08.03.11 19:39 
Warum denn nun wieder als String? Ein Byte-Array ist die einzig sinnvolle Art, Daten zu repräsentieren.

_________________
>λ=
karozocker Threadstarter
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 19:55 
Zitat:
Warum denn nun wieder als String?

Naja weil mein knapp 1000 Zeilen schweres Programm (ohne Erzeugung der Oberfläche) auf einen String als Schlüsel ausgelegt ist -.- hab ich vieleicht nicht optimal angepackt aber ich wills nicht komplett neu aufziehen.
Es dürfte nach der Überwindung des Problems mit dem Encodieren ja eigentlich kein Problem mehr sein - aber bei mir werden immer nur 3Zeichen als key angegeben.. WIESO :eyes:

Regards
karozocker
karozocker Threadstarter
Hält's aus hier
Beiträge: 14

Win 3.0 - Win7 aktuell Vista
Basic (VS 2003) C# (VS 2008)
BeitragVerfasst: Di 08.03.11 20:34 
Gelöst, Yeeeha:
Es war nur ein dummer Fehler... Ich hab immer das gleiche Bild getestet und nicht bedacht, dass die Zeichen wie z.B. Enter auch zur Länge zählen...
War eigentlich schon alles perfekt - riesen Danke nochmal!

Grüße