000
10.09.2004, 15:38 Uhr
RedEagle
|
wenn ich folgenden code ausführe:
C++: |
#include <iostream> #include <string> #include <conio.h>
using namespace std;
string crypt(string, string); string uncrypt(string, string);
int main(){
string password, input; cout << "Source: "; cin >> input; cout << "Pass: "; cin >> password; input = crypt(input, password); cout << "---------------------------" << endl; cout << "Crypted: " << input << endl; cout << "---------------------------" << endl; input = uncrypt(input, password); cout << "Decrypted: " << input; getch(); return 0; }
string crypt(string text, string pw) { /* Wir verschlüsseln den Text, indem wir ihn jeden Buchstaben des Textes mit einem Buchstaben des Passwortes verschlüsseln. */ for(int i = 0; i < text.size(); ++i) { text[i] = text[i] ^ pw[i % pw.size()]; } }
string uncrypt(string text, string pw) { /* Nun entschlüsseln wir den Text wieder, indem wir die Verschlüsselung umkehren und den jeden Buchstaben des verschlüsselten Text einfach wieder mit jedem Buchstaben des (neuen) Passwortes XOR-Verknüpfen. */ for(unsigned i = 0; i < text.size(); ++i) { text[i] = text[i] ^ pw[i % pw.size()]; } }
|
wird kompiliert, und die beiden Eingaben (input, passwort) werden angezeigt. wenn man beides eingegeben hat, wird das Konsolen-fenster geschlossen. Ich habe dann das Programm über die DOS-Box geöffnet, (weil ich keinen Fehler gefunden habe) und da wurde dann "abnormal program termination" angezeigt. woran liegt das??
(Der fehler trit auf, seitdem ich die for-schleifen in die Funktionen gepackt habe.) -- MFG RedEagle |