Verschlüsselung / Geheimsprache
Verfasst: Dienstag 30. November 2021, 16:12
Hallo, alle miteinander,
Ich habe folgende Aufgabe gestellt bekommen:
Sie und Ihr bester Freund/Ihre beste Freundin möchten den Inhalt Ihrer Nachrichten (auf den ersten Blick) unlesbar machen. Um dies zu erreichen, haben Sie sich folgendes Verfahren ausgedacht. Jeden Morgen sehen Sie sich und einigen sich auf eine Zahl (ein Integer). Sie verwenden die ASCII-Tabelle (siehe unten) und verschieben jedes Zeichen Ihrer Nachricht um die vereinbarte Zahl. Allerdings beschränken Sie sich nur auf die Zeichen der Tabelle zwischen (*beide Randwerte eingeschlossen*) den Indizes *33* und *126*.
**Aufgabe:** Schreiben Sie eine Funktion, die den ursprünglichen Satz und die Zahl, auf die Sie sich geeinigt haben, als Argumente nimmt. Die Funktion soll diesen Satz "verschlüsseln", indem sie jedes Zeichen um die angegebene Zahl verschiebt. Dabei bezieht sich das Verschieben auf den entsprechenden Index eines Zeichens in der ASCII Tabelle. Der Rückgabewert Ihrer Funktion ist der "verschlüsselte" Satz (ein String). *Sie können davon ausgehen, dass alle Sätze nur Symbole enthalten, die in der unten stehenden ASCII-Tabelle enthalten sind.*
Wie bereits erwähnt, basiert die Kodierung auf der ASCII-Tabelle und ist auf die Zeichen zwischen Index 33 ('!') und Index 126 ('~') beschränkt. Die Verschiebung des Zeichens 'y' um 10 ergibt zum Beispiel '%'. **Alle Zeichen, die nicht in diesem Bereich enthalten sind (z. B. Leerzeichen), sollen unverändert in den neuen Satz übernommen werden.**
Pythons eingebaute Funktionen [`ord()`](https://www.geeksforgeeks.org/ord-function-python/) und [`chr()`](https://www.geeksforgeeks.org/chr-in-python/) sind sehr hilfreich bei der Umwandlung von Zeichen in die entsprechenden (ASCII) Dezimalzahlen (Indices) und umgekehrt. Sie können und sollen diese Funktionen verwenden, um diese Aufgabe zu lösen!
Folgendes habe ich dann versucht:
code = input("Code: ")
shift = int(input("Verschiebungsfaktor: "))
encoded = "".join(chr((ord(char) + shift) %
print("Verschlüsselter Code:", encoded)
Ich bekomme dann folgende Fehlermeldung:
File "C:\Users\Andie La Seule\PycharmProjects\testProjekt\main.py", line 5
^
SyntaxError: unexpected EOF while parsing
Process finished with exit code 1
Was mache ich falsch?
Viele Grüße von einer absoluten Anfängerin
Ich habe folgende Aufgabe gestellt bekommen:
Sie und Ihr bester Freund/Ihre beste Freundin möchten den Inhalt Ihrer Nachrichten (auf den ersten Blick) unlesbar machen. Um dies zu erreichen, haben Sie sich folgendes Verfahren ausgedacht. Jeden Morgen sehen Sie sich und einigen sich auf eine Zahl (ein Integer). Sie verwenden die ASCII-Tabelle (siehe unten) und verschieben jedes Zeichen Ihrer Nachricht um die vereinbarte Zahl. Allerdings beschränken Sie sich nur auf die Zeichen der Tabelle zwischen (*beide Randwerte eingeschlossen*) den Indizes *33* und *126*.
**Aufgabe:** Schreiben Sie eine Funktion, die den ursprünglichen Satz und die Zahl, auf die Sie sich geeinigt haben, als Argumente nimmt. Die Funktion soll diesen Satz "verschlüsseln", indem sie jedes Zeichen um die angegebene Zahl verschiebt. Dabei bezieht sich das Verschieben auf den entsprechenden Index eines Zeichens in der ASCII Tabelle. Der Rückgabewert Ihrer Funktion ist der "verschlüsselte" Satz (ein String). *Sie können davon ausgehen, dass alle Sätze nur Symbole enthalten, die in der unten stehenden ASCII-Tabelle enthalten sind.*
Wie bereits erwähnt, basiert die Kodierung auf der ASCII-Tabelle und ist auf die Zeichen zwischen Index 33 ('!') und Index 126 ('~') beschränkt. Die Verschiebung des Zeichens 'y' um 10 ergibt zum Beispiel '%'. **Alle Zeichen, die nicht in diesem Bereich enthalten sind (z. B. Leerzeichen), sollen unverändert in den neuen Satz übernommen werden.**
Pythons eingebaute Funktionen [`ord()`](https://www.geeksforgeeks.org/ord-function-python/) und [`chr()`](https://www.geeksforgeeks.org/chr-in-python/) sind sehr hilfreich bei der Umwandlung von Zeichen in die entsprechenden (ASCII) Dezimalzahlen (Indices) und umgekehrt. Sie können und sollen diese Funktionen verwenden, um diese Aufgabe zu lösen!
Folgendes habe ich dann versucht:
code = input("Code: ")
shift = int(input("Verschiebungsfaktor: "))
encoded = "".join(chr((ord(char) + shift) %
print("Verschlüsselter Code:", encoded)
Ich bekomme dann folgende Fehlermeldung:
File "C:\Users\Andie La Seule\PycharmProjects\testProjekt\main.py", line 5
^
SyntaxError: unexpected EOF while parsing
Process finished with exit code 1
Was mache ich falsch?
Viele Grüße von einer absoluten Anfängerin