Verschlüsselung

Bei der Caesar-Verschlüsselung werden alle Buchstaben um eine Anzahl Stellen verrückt:

Schreibe eine Funktion caesar(klartext, n), die die Cäsar-Verschlüsselung umsetzt.

  • Gebe nur Grossbuchstaben aus.
  • Zeichen, die keine Buchstaben sind, sollen nicht verändert werden.
  • Wie kannst du das Chiffrat (den Ciphertext) entschlüsseln?

Ein paar Tipps

Du kannst über die Buchstaben eines Strings laufen wie über die Elemente einer Liste:

s = "Hallo KSR"
for buchstabe in s:
    print(buchstabe)

Einen String in Grossbuchstaben umwandeln:

print("Hallo KSR".upper())
>>> HALLO KSR

Alle Grossbuchstaben können in string.ascii_uppercase abgefragt werden. Mit str.find() können wir den Index (oder -1) finden:

import string
 
for buchstabe in "HALLO":
    print(string.ascii_uppercase.find(buchstabe))
 
>>>
7
0
11
11
14

Der Modulo-Operator % gibt uns den Rest der Ganzzahl-Division zurück. Das ist praktisch, um den Index wieder bei A starten zu lassen, wenn er grösser als Z wird:

import string
 
klartext = "Z"
index = string.ascii_uppercase.find(klartext)
index += 3
index = index % len(string.ascii_uppercase)
ciphertext = string.ascii_uppercase[index]
print(ciphertext)
 
>>> C
  • gf_informatik/verschluesselung.1645742543.txt.gz
  • Zuletzt geändert: 2022-02-24 22:42
  • von hof