ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1158
1158
EMPFEHLEN
-
21.11.09 05:44 #1
- 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; }
-
22.11.09 10:29 #2
- 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.
-
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
-
VB 08 / Operator Mid
Von Xebino im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 14.10.09, 09:23 -
operator << überladen
Von drpingoo im Forum C/C++Antworten: 8Letzter Beitrag: 13.01.09, 15:43 -
Like Operator
Von Arijane im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 22.06.08, 10:16 -
Aus einem String aus Zahlen und Buchstaben, nur die Buchstaben rausfiltern?
Von kurwajebana im Forum JavaAntworten: 2Letzter Beitrag: 14.04.07, 14:15 -
[c++] << und >> Operator
Von FireFlow im Forum C/C++Antworten: 2Letzter Beitrag: 26.12.04, 11:44





Zitieren
Login






