tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1158
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    carlos1976 carlos1976 ist offline Rookie
    Registriert seit
    Nov 2009
    Beiträge
    9
    Hallo!

    Folgendes Programm, soll die beiden Strings: Text + Key, Buchstabenweise zusammen verknüpfen.
    Das funktioniert soweit, ich verstehe nur nicht, wie ich ich da die XOR Operation integrieren soll, bzw. wie das gemeint ist..

    (Aufgabenbeschreibung)
    Wandle jedes Zeichen text[i] mit Hilfe einer bitweisen, exklusiven Oder-Operation (^in
    C++) um, bei der das Zeichen text[i] verknüpft wird mit dem Passwort-Zeichen key[i].
    Falls i die Länge von key überschreitet, dann wird zyklisch der Anfang von key
    durchlaufen.

    Eingabe:
    Zu verschlüsselnde Zeichenkette text, Passwort key

    Ausgabe:
    Verschlüsselte Zeichenkette result.

    Implementieren Sie den Algorithmus in einer seperaten Funktion string encrypt (string text, string key) und verschlüsseln Sie die vorgegebene Zeichenkette text mit Hilfe des vorgegebenen Passwortes key.

    Könnt Ihr mir bei der bitweisen, exklusiven Oder-Operation helfen? Thx für Eure Hilfe!



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
     
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    string encrypt(string text, string key)
       {
            
       string result;
       
       int k = 0;
       
       for ( int i= 0; i< text.length();i++){
       
       result = result +  text[i] + key[k];  
       
       k++; 
       
       if (key.length()==k)
       k = 0;
      
       } 
      return result; 
    }
     
    int main(int argc, char* argv[])
    {
        string text = "abcdefg.";
        string key  =  "hijkl";
        
        cout << "Die verschluesselte Zeichenkette lautet: " << encrypt(text,key);
        
        return 0;
    }
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Warum addierst du denn die Zeichen? Das ist doch keine (reversible) Verschlüsselung.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Du hast im Prinzip die Aufgabe fast gelöst. Du sollst ja text[i] und key[i] mit XOR verknüpfen. Du tust sie momentan aber konkatenieren. Du musst lediglich folgende Zeile ändern.

    (Wie immer ohne Garantie, ich programmiere kein c++ )
    Code :
    1
    
    result = result +  text[i] + key[k];
    Code :
    1
    
    result = result +  (char)(text[i] ^ key[k]);
     

Ähnliche Themen

  1. VB 08 / Operator Mid
    Von Xebino im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 14.10.09, 09:23
  2. operator << überladen
    Von drpingoo im Forum C/C++
    Antworten: 8
    Letzter Beitrag: 13.01.09, 15:43
  3. Like Operator
    Von Arijane im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 22.06.08, 10:16
  4. Antworten: 2
    Letzter Beitrag: 14.04.07, 14:15
  5. [c++] << und >> Operator
    Von FireFlow im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 26.12.04, 11:44

Stichworte