Chiffrierung in C
-
Moinsen,
also ich muss ein Programm schreiben, was einen Text verschlüsselt und später wieder entschlüsselt.
In der Aufgabenstellung steht, dass die Verschlüsselung darin bestehen soll das erste Byte der Datei mit dem ersten Byte des Schlüssels zu addieren und das Ergebnis zu speichern. Die Additionsüberträge sollen ignoriert werden. Entsprechend soll das dann bis zum Ende weiter laufen.
Wenn der Schlüssel kürzer ist, als die Ausgangsdatei soll wieder mit dem ersten Zeichen des Schlüssels angefangen werden.
Die Dechiffrierung soll das ganze natürlich wieder rückgängig machen.Der Benutzer soll zunächst den Schlüssel eingeben können und dann die Ausgangsdatei bzw. Zieldatei eintippen.
Die Dateien sollen mit „rb“ und „wb“ geöffnet werden und zum Lesen/Schreiben einzelner Bytes soll fgetc() bzw. fputc() verwendet werden.Das Problem ist, dass in der Vorlesung die Funktionen „rb“, „wb“, „fgetc()“ und „fputc()“ noch gar nicht besprochen wurden.
Kurzum ich habe keine Ahnung wie ich überhaupt anfangen soll.Ich wäre für jeden Tipp dankbar.
Unten noch die Aufgabenstellung vom Dozenten.
http://lh5.ggpht.com/_QG8mTrWqdT0/S_LDYI4mojI/AAAAAAAABZ0/mhlNv7uAxhw/In_Chiffre.jpg
Schönen Dank schonmal.
Beste,
Bogomir
-
Nun, wenn man nicht weiß, was eine Funktion macht, dann schaut man in eine Referenz:
http://www.cplusplus.com/reference/clibrary/cstdio/fgetc/
http://www.cplusplus.com/reference/clibrary/cstdio/fputc/
http://www.cplusplus.com/reference/clibrary/cstdio/fopen/Damit solltest du einen brauchbaren Ansatz hinbekommen.
P.S.: Wie du siehst ist die Referenz zwar eigentlich für C++, der Teil über das in C++ enthaltene C ist in der Referenz aber 100% C-kompatibel behandelt.
-
Super, Hausaufgaben im Internet, dass ich das noch erlebe.
Wie wärs, wenn du auch die Lösung im Internet suchst, als Tipp:
suche mal nach encode/decode/xor (exklusiv oder)Auch ein Tipp für deinen Dozenten: "rb" steht nicht für read byte, sondern seit seeligen K&R Zeiten für read binary bzw. write binary. (so wie der damals noch gängige FTP-Modus "type binary" auch nicht für "read byte" stand)