Ich möchte gerade im Rahmen meines Selbststudiums ein Verschlüsselungsprogramm schreiben, bei dem die Verschlüsselung ohne Key funktioniert, aber dafür durch die Anzahl an Buchstaben.
Mein Fehler, der mich sehr beschäftigt ist, dass wenn ein Buchstabe mehrfach auftaucht, immer nur der erste genommen wird und dann so eine falsche Berechnung der Verschlüsselung im Verlauf stattfindet.
Ich habe schon den Beitrag dazu im Forum gelesen und viele Videos auf Yt durchgeguckt, aber nichts hilft so wirklich. Könnte mir einer vielleicht einen Tipp / Hinweis geben woran es liegt? Danke!
Mein Code:
Code: Alles auswählen
'''Das Verschlüsselungsprogramm mit der Cäsar-Chiffre.'''
#Variabeln vereinbaren
klartext = ''
verschiebung = 1
def caesar_verschluesselung(klartext):
print('Ihr Klartext wird nun verschlüsselt.')
for zeichen in klartext:
#Zahl für die Stelle an der das Zeichen steht suchen
zeichenIndex = klartext.index(zeichen)
#Verschiebung neu berechnen
verschiebung = (1 * zeichenIndex) + 1
#Verschiebung eines Großbuchstabens
if zeichen.isupper():
print(chr((ord(zeichen) + verschiebung -65) % 26 + 65), end = ' ')
elif zeichen == ' ':
print(' ')
#Verschiebung eines Kleinbuchstabens
elif zeichen.islower():
print(chr((ord(zeichen) + verschiebung - 97) % 26 + 97), end = ' ')
else:
return False
#ursprüngliche Zeichenkette einlesen
klartext = input('Bitte geben Sie den Klartext ein, der verschlüsselt werden soll: ')
print('Die ursprüngliche Zeichenkette ist:', klartext, '\n')
#Funktionsaufruf
caesar_verschluesselung(klartext)