# XOR^Operator Buchstaben verschlüsseln



## carlos1976 (21. November 2009)

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!




```
#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;
}
```


----------



## deepthroat (22. November 2009)

Hi.

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

Gruß


----------



## CPoly (22. November 2009)

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++ ;-))

```
result = result +  text[i] + key[k];
```


```
result = result +  (char)(text[i] ^ key[k]);
```


----------

