Codeproblem bei einem Verschlüsselungsprogramm
-
Was ist an globalen Variablen und an goto so schlecht?
Und was ist mit fflush(stdin)?
Was steht in irgendwelchen Büchern falsch?
-
Das ist keinen Verschlüsselung sondern nur müll. Sorry
dau
-
Und fflush(stdin); geht sehr wohl auf windows ! Weis nicht wer dir das eingeredet hat! Und das ist getestet !
Dau
-
fflush(stdout); wird wohl eher nicht gehen. Vileicht solltest du mal ein Buch lesen.
dau
-
Versuch ab Zeile 192 mal mit einem Debugger drüber zu gehen.
Sind die Leerzeichen auch schon in der Datei vorhanden?Nachdem du dann den Fehler behoben hast, wäre es durchaus angebracht, wie wutz schon meinte, einige Optimierungen vorzunehmen.
-
dau schrieb:
Das ist keinen Verschlüsselung sondern nur müll. Sorry
dau
Verschlüsselung nennt man den Vorgang, bei dem ein klar lesbarer Text (Klartext) (oder auch Informationen anderer Art, wie Ton- oder Bildaufzeichnungen) mit Hilfe eines Verschlüsselungsverfahrens (Kryptosystem) in eine „unleserliche“, das heißt nicht einfach interpretierbare Zeichenfolge (Geheimtext) umgewandelt wird.
Ist aus Wikipedia. Genaueres: http://de.wikipedia.org/wiki/Verschlüsselung
Resultat=unleserlich
BasicMan01 schrieb:
Versuch ab Zeile 192 mal mit einem Debugger drüber zu gehen.
Sind die Leerzeichen auch schon in der Datei vorhanden?Nachdem du dann den Fehler behoben hast, wäre es durchaus angebracht, wie wutz schon meinte, einige Optimierungen vorzunehmen.
Die Leerzeichen sind nicht in der Datei, das mit dem Debugger werde ich mal versuchen
-
BasicMan01 schrieb:
Versuch ab Zeile 192 mal mit einem Debugger drüber zu gehen.
Sind die Leerzeichen auch schon in der Datei vorhanden?Nachdem du dann den Fehler behoben hast, wäre es durchaus angebracht, wie wutz schon meinte, einige Optimierungen vorzunehmen.
Ich habe jetzt den debugger angewendet und bemerkt, dass die Variable "result" jeden zweiten Schleifendurchlauf den Wert "-1" annimmt (entspricht wie auch der Wert "152" dem Zeichen 'ÿ
'). Nach langem herumprobieren habe ich jetzt einfach diese Zeilen dazugefügt:if(result==-1) cout << "\b";
-
Die Lösung find ich nicht so toll Das löst für dich vielleicht erstmal das Problem, aber die Ursache ist damit noch nicht geklärt.
Kann es sein, dass in der Funktion "decsend" zeichen als ungesetzter Wert zurückgegeben wird, weil keiner der Vergleiche positiv ist?
-
Verschlüsselung nennt man den Vorgang, bei dem ein klar lesbarer Text (Klartext) (oder auch Informationen anderer Art, wie Ton- oder Bildaufzeichnungen) mit Hilfe eines Verschlüsselungsverfahrens (Kryptosystem) in eine „unleserliche“, das heißt nicht einfach interpretierbare Zeichenfolge (Geheimtext) umgewandelt wird.
Ist aus Wikipedia. Genaueres: http://de.wikipedia.org/wiki/Verschlüsselung
Müll bleibt Müll !
1 Sekunde und dein Cryptosystem ist gebrochen !
dau
-
Verschlüsselung nennt man den Vorgang, bei dem ein klar lesbarer Text (Klartext) (oder auch Informationen anderer Art, wie Ton- oder Bildaufzeichnungen) mit Hilfe eines Verschlüsselungsverfahrens (Kryptosystem) in eine „unleserliche“, das heißt nicht einfach interpretierbare Zeichenfolge (Geheimtext) umgewandelt wird. Als entscheidend wichtige Parameter der Verschlüsselung werden hierbei ein oder auch mehrere Schlüssel verwendet.
-
dau schrieb:
Und fflush(stdin); geht sehr wohl auf windows ! Weis nicht wer dir das eingeredet hat! Und das ist getestet !
Dau
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39349.html
Es ist undefiniert und deine Aussage damit einfach schwachsinnig und falsch. Wer sich auf undefiniertes Verhalten verlässt ist einfach als Programmierer nicht geeignet.
-
uiuiu schrieb:
Verschlüsselung nennt man den Vorgang, bei dem ein klar lesbarer Text (Klartext) (oder auch Informationen anderer Art, wie Ton- oder Bildaufzeichnungen) mit Hilfe eines Verschlüsselungsverfahrens (Kryptosystem) in eine „unleserliche“, das heißt nicht einfach interpretierbare Zeichenfolge (Geheimtext) umgewandelt wird. Als entscheidend wichtige Parameter der Verschlüsselung werden hierbei ein oder auch mehrere Schlüssel verwendet.
und...?
-
Nimm ein Algorithus wie aes/blowfish/3des/serpent ,oder sonnst ein angesehener Algorithmus. Ansonnsten ist dein Ciphertext leicht zu brechen.
Das was du da machst, hat heute nichts mehr mit Verschlüsselung zu tun. Ausserdem ist dein source-code echt lustig.
Dau
-
hi
@uiui
Wir sprechen hier von Windows und nicht ansi c !!
Dau
-
BasicMan01 schrieb:
Die Lösung find ich nicht so toll Das löst für dich vielleicht erstmal das Problem, aber die Ursache ist damit noch nicht geklärt.
Kann es sein, dass in der Funktion "decsend" zeichen als ungesetzter Wert zurückgegeben wird, weil keiner der Vergleiche positiv ist?
Du hast recht die Variable "zeichen" wird jedes 2. Mal als irgendein wert zurückgegeben weil die Variable "dec" jedes 2. Mal das Zeichen "\n" ist.
Ich habe jetzt diesen Code in die Funktion "decsend" zu den Anderen Vergleichen dazugetan:else if(strcmp(dec, "\n")==0) { zeichen=-1; }