Verschlüsseln



  • Für die Schule sollen wir ein Programm erstellen, das einen beliebigen Text mittels eines 8bit-Schlüssel (byteweises XOR) verschlüsselt. ( <= mehr oder weniger wörtlich die aufgabenstellung) Jetzt hab ich n bissel gesucht, einiges gefunden und auch ein Programm geschrieben:

    int n=1;
    char crypt;
    char les[100], schreib[100];
    
    cout<<"                  XOR-Verschl"<<char(129)<<"sselung mit 8 bit (Glaub ich :clown:\n\n";
    
    cout<<"Welche Datei soll ver-/ entschl"<<char(129)<<"sselt werden?\n";
    cin>>les;
    cout<<"In welche Datei soll geschrieben werden?\n";
    cin>>schreib;
    
    ifstream text (les);
    ofstream write (schreib);
    
    while (!text.eof())
    {
    crypt=text.get();
    
    if (text.eof()) break;
    if ((crypt!=' ')&&(crypt!='\n'))
    {
    crypt = crypt ^ 8;
    }
    write<<crypt;
    n++;
    }
    
    gotoxy(1,10);
    cout<<n<<" Zeichen eingelesen und geschrieben!\n<Bitte Taste dr"<<char(129)<<"cken>";
    
            text.close();
            write.close();
    
            getch();
    

    Jetzt is meine Frage ob das das gesuchte is, oder ich was völlig falsches geschrieben hab...!?!?

    schonmal jetzt ein gut gelauntes danke..... 😋



  • Passt schon so. (Interesant wäre vielleicht noch, wie dann der verschlüsselte String aussieht ;).)

    Als Fleißaufgabe könntest du noch versuchen nicht nur ein Zeichen als Schlüssel anzuwenden sondern mehrere.
    Beispiel:

    //anstatt
    unsigned char schluessel_8bit = 8;
    //sowas
    char schluessel[4] = "abc";
    


  • Danke danke....werd mal ein bischen rumprobieren! Das 8bit und XOR hatten mich ziemlich verwirrt, weil ich von Kryptographie absolut keine ahnung habe...



  • crypt = crypt ^ 8;
    

    Ich hoffe du weißt, dass das bedeutet, dass dein Schlüssel 00001000 (= dezimal 😎 ist. Die Acht hier hat nichts mit den 8 Bit zu tun, du könntest jedes andere 8Bit-Zeichen auch verwenden.
    Da in C(++) hinter jedem char-Zeichen eine Zahl steckt, bedeutet das, dass du als Schlüssel die Zahlen von 0-255 benutzen kannst (eben 2 hoch 8 - 1).

    PM



  • oh....achso....das wusst ich nicht 🙄
    danke für die Info.
    So wird mir auch das ein oder andere ein bischen klarer!



  • Firefox spinnt nicht, er wird vielleicht vom internet Explorer abgelenkt
    😃 😉 :p 🤡


Anmelden zum Antworten