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