mowl
Mitglied
Ich habe ein kleines Verschlüsselungsprogramm geschrieben, leider funktioniert dies nicht, das Fenster schließt sich obwohl eine Ausgabe erfolgen bzw. durch PAUSE der Bildschirm erhalten bleiben müsste.
Der Code sollte ausreichend kommentiert sein, falls es doch Fragen gibt bitte posten. Die Verschlüsselungsmethode müsste sich XOR nennen bin mir aber nicht sicher.
das tab Array als Fehlerquelle ist auszuschließen!
Ich bin für jede Hilfe dankbar!
Der Code sollte ausreichend kommentiert sein, falls es doch Fragen gibt bitte posten. Die Verschlüsselungsmethode müsste sich XOR nennen bin mir aber nicht sicher.
Code:
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int i, x, chr;
// in dem Array sind Wert von 1 - 255, also eine gemischte ASC II Tabelle, werte sind nicht doppelt vorhanden
int tab[] = {106, 123, 238, 135, 24, 107, 194, 195, 158, 80, 136, 91, 81, 168, 227, 174, 22, 44, 73, 26, 131, 219, 105, 15, 129, 62, 221, 32, 191, 10, 170, 171, 233, 180, 28, 8, 5, 98, 240, 149, 176, 95, 199, 16, 60, 113, 228, 118, 11, 109, 9, 127, 177, 115, 93, 41, 205, 250, 75, 218, 49, 7, 220, 193, 90, 155, 188, 1, 145, 254, 35, 241, 20, 247, 27, 46, 175, 86, 84, 159, 248, 222, 237, 160, 71, 103, 117, 165, 161, 17, 236, 139, 151, 99, 57, 217, 54, 42, 40, 89, 153, 83, 201, 209, 156, 104, 78, 19, 33, 167, 111, 154, 55, 121, 239, 230, 66, 190, 47, 65, 70, 235, 164, 137, 210, 101, 231, 112, 148, 200, 134, 225, 77, 92, 198, 242, 197, 88, 172, 147, 67, 122, 36, 72, 69, 138, 211, 76, 252, 223, 186, 82, 163, 152, 202, 96, 31, 207, 214, 108, 58, 249, 85, 34, 68, 189, 23, 245, 48, 213, 157, 184, 12, 133, 39, 212, 179, 162, 14, 144, 30, 2, 234, 166, 25, 97, 53, 224, 43, 50, 185, 246, 94, 203, 59, 206, 13, 37, 187, 6, 178, 169, 216, 208, 21, 130, 61, 126, 3, 150, 226, 140, 232, 244, 251, 143, 125, 100, 229, 63, 120, 74, 173, 52, 128, 196, 146, 132, 192, 29, 141, 204, 124, 45, 4, 110, 243, 51, 255, 114, 87, 64, 102, 142, 181, 215, 183, 116, 182, 56, 38, 119, 253, 18, 79};
string text("hallo"),
enkodiert,
dekodiert;
/* enkodiert wird wie folgt, text[i] wird in einen integer gecastet,
dieser wird dann durch den im tab Array befindlichen integer, welcher
auch in einen char gecastet wird, ersetzt */
for (i = 0; i < text.size(); i++) {
enkodiert += (char)tab[(int)text[i]];
}
/* das dekodieren, ist im Prinzip das Gegenteil vom kodieren, es wird
also im tab Array nach dem ASC II Wert gesucht welcher vom aktuellen Zeichen
zurückgegeben wird */
for (i = 0; i < enkodiert.size(); i++) {
// hier wird das tab-Array nach dem Zeichen durchsucht, hier vermute ich die Fehlerquelle
for (x = 0; x < 255; i++) {
if (tab[x] == (int)enkodiert[i]) {
chr = x;
}
}
// Buchstaben anhängen
dekodiert += (char)chr;
}
// hier wird nichts ausgegeben
cout << "Text: " << dekodiert << "\n";
system("PAUSE");
return 0;
}
Ich bin für jede Hilfe dankbar!