Entwickler-Ecke
IO, XML und Registry - Bild verlustfrei zu Text umwandeln
karozocker - Di 08.03.11 13:18
Titel: Bild verlustfrei zu Text umwandeln
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 - 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.
karozocker - 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
Kha - 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 - Di 08.03.11 17:46
Kha hat folgendes geschrieben : |
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:
http://www.pseminar-epple.jimdo.com
ziemlich kaputte aktuelle Testversion:
http://www.share-online.biz/dl/4XSZWQHLJL9
MfG
Kha - 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 ;) .
karozocker - Di 08.03.11 19:23
Ok, ich kann inzwischen die Zeichen so einlesen wie ich will (vgl. Editor):
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 - 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 - 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 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!