# Verschlüsselt die Nachricht m mit dem Schlüssel k. Ergebnis ist der Geheimtext c (Ciphertext)
def encrypt(k, m):
# Ciphertext x
c = ""
# Für jedes zeichen des Klartextes m
for zeichen in m:
zeichen_verschluesselt = verschieben(k, zeichen)
c = c + zeichen_verschluesselt
return c
# Verschiebt das Zeichen z um k Stellen
def verschieben(k, z):
# Umwandlung der Buchstaben in Zahlen
schluessel = encode_in_zahl(k)
zeichen = encode_in_zahl(z)
# Verschiebung: % = Modulo bei Überschreitung des Bereiches
verschiebung = (schluessel + zeichen) % 26
return decode_in_zeichen(verschiebung)
# Buchstaben in Zahl umwandeln (encodieren)
# A = 0, B = 1, ..., Z = 25
def encode_in_zahl(zeichen):
return ord(zeichen) - ord("A")
# Zahl in Buchstabe umwandeln (decodieren)
# 0 = A, 1 = B, ..., 25 = Z
def decode_in_zeichen(zahl):
return chr(zahl + ord("A"))
message = "HALLO"
key = "B"
print(encrypt(key, message))
# Caesarscheibe
# libraries importieren
import re # regex
def encrypt(key: int, message: str):
encrypted_string = ""
# iterrieren durch den string für jedes Zeichen
for char in message.upper():
if bool(re.search("[A-Z]", char)) == True: # Nur Buchstaben werden verschoben
int_of_char = ord(char) # Zeichen in Zahl (ASCII) umwandeln
shift = key % 26 # die nötige Anzahl an Verschiebungen
if int_of_char - 90 + shift > 0:
encrypted_char = 65 + (int_of_char - 91 + shift)
encrypted_string = encrypted_string + chr(encrypted_char)
else:
encrypted_char = chr(int_of_char + shift) # verschieben des Zeichen
encrypted_string = encrypted_string + encrypted_char # hinzufügen des verschlüsselten Zeichen zu
else: encrypted_string = encrypted_string + char # anhängen der nicht Buchstaben
return encrypted_string
def decrypt(key: int, message: str):
decrypted_string = ""
# iterrieren durch den string für jedes Zeichen
for char in message.upper():
if bool(re.search("[A-Z]", char)) == True: # Nur Buchstaben werden verschoben
if ord(char) - 65 - key < 0: decrypted_string = decrypted_string + chr(91 + (ord(char) - 65 - (key % 26)))
else: decrypted_string = decrypted_string + (chr(ord(char)-(key % 26)))
else: decrypted_string = decrypted_string + char # anhängen der nicht Buchstaben
return decrypted_string
print(encrypt(16, "ZSXCVZ ahfkdjlss dms vsmdvsdm smc s!!!!(§/!/)"))
print(decrypt(16, "pinslp"))