Cäsar-Verschlüsselung - Indexverschiebung how to?
Verfasst: Dienstag 11. August 2020, 15:26
Was muss ich hinzufügen damit die Cäsar-Verschlüsselung mit einer zusätzlichen Verschiebung um den Index des Zeichens geschieht? Das erste Zeichen soll also zusätzlich um eine Position verschoben werden, das zweite Zeichen zusätzlich um zwei Positionen und so weiter.
""" ************************************************
Cäsar Verschlüsselung mit Indexverschiebung
************************************************"""
# die Funktion zur Cäsar-Verschlüsselung
def caesar(kette):
# zwei leere Zeichenketten vereinbaren
teil1 = ""
teil2 = ""
# die Länge der ursprünglichen Zeichenkette ermitteln
laenge = len(kette)
# für den Index
zaehler = 0
# die Zeichen verteilen
while zaehler < laenge:
# Zeichen mit einem geraden Index kommen in die Zeichenkette teil1
if zaehler == 0:
teil1 = teil1 + kette[zaehler]
# bei einem ungeraden Index werden die Zeichen in der Zeichenkette teil2 abgelegt
else:
teil2 = teil2 + kette[zaehler]
zaehler = zaehler + 1
print("Cäsar-Verschlüsselung")
verschiebung = int(input("Bitte geben Sie den Verschiebewert ein: "))
# jedes Zeichen um den angegebenen Wert verschieben
for zeichen in kette:
# ist es ein großer Buchstabe?
if zeichen.isupper():
print(chr((ord(zeichen) + zaehler + verschiebung - 65) % 26 + 65), end = " ")
else:
print(chr((ord(zeichen) + zaehler + verschiebung - 97) % 26 + 97), end = " ")
print("\n")
# die ursprüngliche Zeichenkette einlesen
eingabe = input("Bitte geben Sie eine Zeichenkette ein: ")
print("Die ursprüngliche Zeichenkette ist:", eingabe, "\n")
# die Verschlüsselungen durchführen
caesar(eingabe)
""" ************************************************
Cäsar Verschlüsselung mit Indexverschiebung
************************************************"""
# die Funktion zur Cäsar-Verschlüsselung
def caesar(kette):
# zwei leere Zeichenketten vereinbaren
teil1 = ""
teil2 = ""
# die Länge der ursprünglichen Zeichenkette ermitteln
laenge = len(kette)
# für den Index
zaehler = 0
# die Zeichen verteilen
while zaehler < laenge:
# Zeichen mit einem geraden Index kommen in die Zeichenkette teil1
if zaehler == 0:
teil1 = teil1 + kette[zaehler]
# bei einem ungeraden Index werden die Zeichen in der Zeichenkette teil2 abgelegt
else:
teil2 = teil2 + kette[zaehler]
zaehler = zaehler + 1
print("Cäsar-Verschlüsselung")
verschiebung = int(input("Bitte geben Sie den Verschiebewert ein: "))
# jedes Zeichen um den angegebenen Wert verschieben
for zeichen in kette:
# ist es ein großer Buchstabe?
if zeichen.isupper():
print(chr((ord(zeichen) + zaehler + verschiebung - 65) % 26 + 65), end = " ")
else:
print(chr((ord(zeichen) + zaehler + verschiebung - 97) % 26 + 97), end = " ")
print("\n")
# die ursprüngliche Zeichenkette einlesen
eingabe = input("Bitte geben Sie eine Zeichenkette ein: ")
print("Die ursprüngliche Zeichenkette ist:", eingabe, "\n")
# die Verschlüsselungen durchführen
caesar(eingabe)