![]() |
![]() |
|
![]() |
![]() |
|
Simulationen Alles zum Thema Simulation |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 06.08.2002
Alter: 38
Beiträge: 363
|
![]() Hallo Programmierer. Jaja, ich weiss, wird sicherlich nicht ganz so hier her gehören aber ich würde doch gerne mal um Hilfe fragen, da ich in vielen anderen Foren nur die Antwort bekommen habe "Wer ein verschlüsselungsprogramm schreibt, der muss auch ein
Entschlüsselungsprogramm selber schreiben können." Naja, wie die Aussage schon sagt, ich habe ein grosses Problem mit meinem Entschlüsselungsprogramm. Es läuft einfach nicht richtig. Verschlüssler: #include <iostream> #include <cstdlib> #include <fstream> using namespace std; char* cencrypt(char* in, char key='5') { char lchar = 0; int length = strlen(in); char* out = new char[length+1]; for(int i=0;i<length;i++) { out[i] = in[i] + key + (lchar % key); lchar = in[i]; } out[length] = 0; return out; } int main() { char eingabe[255] = {0}; int i = 0,x = 0,schluessel = 0; div_t weiter; cout<<"Codierung"<<endl; cout<<"Bitte Ihren Text (max. 255 Zeichen) :"; cin.getline(eingabe,255); cout << "\n Der verschluesselte Text lautet : \n\n"; char *enc = cencrypt(eingabe); cout << enc << endl; ofstream ofs ("converted.txt"); ofs << enc <<endl; delete [] enc; } Entschlüssler: #include <iostream> #include <cstdlib> #include <fstream> using namespace std; char* cencrypt(char* in, char key='5') { char lchar = 0; int length = strlen(in); char* out = new char[length-1]; for(int i=0;i<length;i++) { out[i] = in[i] - key - (lchar % key); //Überall,wo ein + stand, steht jetzt ein Minus, um den Code imzurechnen. lchar = in[i]; } out[length] = 0; return out; } int main() { char eingabe[255] = {0}; int i = 0,x = 0,schluessel = 0; div_t weiter; ifstream in ("converted.txt"); cout << "\n Der verschluesselte Text lautet : \n\n"; in.getline(eingabe,255); char *enc = cencrypt(eingabe); cout << enc << endl; delete [] enc; while ('a'); } Bitte helft mir, sitze da nämlich schon ewig dranne. BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE, BITTE.
____________________________________
Der Weg vom Pils Liebe geht durch den Magen, Pils durch die Blase ![]() |
![]() |
![]() |
![]() |
#2 |
Hero
![]() Registriert seit: 22.10.2001
Beiträge: 935
|
![]() genialer Algo
![]() ich habe wirklich keine Lust, Fehler zu suchen, aber einer ist auffällig: in deinem Decoder setzt du deinen 'key' auf den INPUT (== gecrypteten) String, während du beim Encoden den Key auf den INPUT ( == UNgecrypteten !) String setzt - dat kann so nicht jehn... HansJürgen |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 06.08.2002
Alter: 38
Beiträge: 363
|
![]() Hallo.
Vielen Dank. Leider bin ich zu dumm dafür. Ich hoffe, das mir dabei noch mal jemand helfen kann. Vielen Dank im Vorraus. mfg Atze.
____________________________________
Der Weg vom Pils Liebe geht durch den Magen, Pils durch die Blase ![]() |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
![]() "es läuft einfach nicht richtig" ist schon eine sehr hilfreiche Fehlerbeschreibung...
|
![]() |
![]() |
![]() |
#5 | |
Hero
![]() Registriert seit: 22.10.2001
Beiträge: 935
|
![]() Zitat:
Wenn du im Entschlüssler "lchar = in[i]" ersetzt durch "lchar = out[i]", dann hast du eine Chance, weiter zu kommen... Hans-Jürgen |
|
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 06.08.2002
Alter: 38
Beiträge: 363
|
![]() Hallo.
Ich habe es jetzt so gemacht, aber leider kommt jetzt ein Debug-Error, der im angehängten Bild zu sehen ist. Was habe ich falsch gemacht??? Vielen Dank im Vorraus. mfg Atze. Achja, die angehängte Fehlermeldung ist natürlich sehr aufschlussreich, findet ihr nicht???
____________________________________
Der Weg vom Pils Liebe geht durch den Magen, Pils durch die Blase ![]() |
![]() |
![]() |
![]() |
#7 |
Veteran
![]() Registriert seit: 06.08.2002
Alter: 38
Beiträge: 363
|
![]() oh, oh... Bild vergessen.
____________________________________
Der Weg vom Pils Liebe geht durch den Magen, Pils durch die Blase ![]() |
![]() |
![]() |
![]() |
#8 |
Newbie
![]() Registriert seit: 01.06.2000
Beiträge: 15
|
![]() Die Fehlermeldung ist doch eindeutig, oder?
![]() Sie bedeutet einfach nur, dass du auf Speicherbereiche zugreifst, die vorher nicht reserviert wurden. Du erstellst einen nullterminierten string der Länge (length -1): char* out = new char[length-1]; und greifst aber mit: out[length] = 0; auf das das Element length zu. Ändere die Zeile: char* out = new char[length-1]; wie folgt: char* out = new char[length+1]; dann sollte das Programm arbeiten, vorausgesetzt, du hast Hans-Jürgen's Hinweis befolgt und "lchar = in[i]" durch "lchar = out[i]" ersetzt. Steffen |
![]() |
![]() |
![]() |
#9 |
Hero
![]() Registriert seit: 22.10.2001
Beiträge: 935
|
![]() er könnte übrigens auch im Decoder "lchar = in[i]" durch "lchar = out[i]" ersetzen, oder ?
![]() Zusatzfrage: wird's dadurch sicherer ? ![]() Lerneffekt: mal sehen, ob's dann genau so funktioniert ![]() HansJürgen |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() Registriert seit: 06.08.2002
Alter: 38
Beiträge: 363
|
![]() Hallo.
Es hat alles prima geklappt. Weiss villeicht jemand, wie ich das mache, dass der Entschlüsseler auch Zeilenumbrüche einliest??? Danke für eure Antworten. mfg Atze
____________________________________
Der Weg vom Pils Liebe geht durch den Magen, Pils durch die Blase ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|