backslash problem
-
Kannst du mal das Zeichen ausgeben lassen (notfalls nach int gecastet), das an der problematischen Stelle steht?
-
ich verstehe nicht wieso chipher alles korrekt enthält jedoch beim umwandeln was verloren geht und encodebuffer von dem aus nach chipher "kopiert" wurde nicht alles korrekt widergibt.
strlen wird wohl die gesamte grösse ausgeben und nicht nur bis zum einzelnen backslash
-
96 +:: 97 :: 98 �:: 99 �::
:: int i <zeichen> ::
bei 97 steht garnichts, wohl aufgrund des einzelnen backslashs!
-
(int) encodebuffer[97] gibt 0 aus
-
Ich würd vermuten, dass beim Verschlüsseln ein char auf \0 abgebildet wird und daher der resultierende String an dieser Stelle als beendet angesehen wird.
Anstatt den Encodebuffer auszugeben, könnte man mit einer for bis 1024 Zeichen für Zeichen des Arrays ausgeben, also
for (int i = 0; i < 1024; i++) cout << encodebuffer[i];
-
Vielleicht ist das beim Blowfish-Verschlüsselungsdings so, dass manche Zeichen zu 0 verschlüsselt werden? Weiß nicht, kenne mich nicht mit aus, aber falls das so sein sollte, solltest du die verschlüsselten Zeichen nicht mehr als string behandeln, sondern binär.
e: Oh, man könnte auch mal den Post vom Vorposter gescheit lesen... kraks...
-
ts0 schrieb:
(int) encodebuffer[97] gibt 0 aus
Und - ist 0 seit neuestem der ASCII-Code für einen Backslash? (das wäre ja ganz was neues)
Wenn du Daten hast, die ASCII 0 als normales Element enthalten können (und bei deinen verschlüsselten Daten scheint das ja der Fall zu sein), kannst du die nicht mehr als C-Strings auffassen (stlen() etc sehen diese Null als Stringendemarke an), sondern mußt dir die Länge der Daten nebenher speichern.
-
danke für die antworten.
werde nun den verschlüsselten text in hex umwandeln um damit weiterarbeiten zu können und umgekehrt auf der client-seite
-
Ich hab irgendwie das Gefühl, du verstehst das nicht ganz
Inwiefern willst du denn die Daten "in Hex umwandeln"?
-
hex mag blödsinn sein.
jedoch würde die umwandlung in binary form oder mit hilfe des huffman algorithmus (?!) sinn ergeben. oder lieg ich da etwa falsch
-
ts0 schrieb:
hex mag blödsinn sein.
Oder auch nicht. Hexadezimal ist eine ganz brauchbare textuelle Darstellung binärer Daten. Vielleicht etwas platzverschwenderisch, dafür kann es jeder E-Techniker lesen

jedoch würde die umwandlung in binary form
Die Daten liegen schon in binärer Form vor, wozu also umwandeln.
oder mit hilfe des huffman algorithmus (?!) sinn ergeben. oder lieg ich da etwa falsch
Falsche Baustelle, Huffman ist ein Kompressionsalgorithmus.