Wörterprüfung für Caesarverschlüsslungsprogramm
Verfasst: Dienstag 26. Juni 2018, 17:50
Ich habe mir ein Caesarver- und entschlüsselungstool geschrieben, was allerdings beim Entschlüsseln nur alle möglichen Schlüssel durchprobiert und nicht das lesbare ergebnis ausgibt. Nun frage ich mich ob man das nicht so verbessern könnte, sodass nur der für Menschen lesbare Entschlüsselte Text ausgegeben wird, dabei ist die Frage wie macht man das? mit Wörterbuch und durchchecken ob jedes einzelne Wort in einem Wörterbuch verfügbar ist?
Vielen Dank für eure Ideen im voraus
Hugo
Pythoncode:
Vielen Dank für eure Ideen im voraus
Hugo
Pythoncode:
Code: Alles auswählen
print("Caesar Ver- und Entschlüsselungstool")
print("================================================================================")
Hilfe=input("Soll die Hilfe geöffnet werden?[Ja oder Enter]")
if Hilfe=="ja" or Hilfe=="Ja"or Hilfe=="J"or Hilfe=="j":
print("Die Caesarverschlüsselung ist eine Verschlüsselung,")
print("die von Gaius Julius Caesar erfunden wurde. Bei ihr ")
print("wird jeder Buchstabe des Alphabets einem anderen, der Reihe nach zugeordnet. ")
print("Bei einem Schlüssel von 1 würde die Zuordnungstabelle ")
print("folgendermaßen aussehen:")
print("a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|")
print("---------------------------------------------------")
print("b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|a|")
print(" ")
Mehr=input("Hätten sie gerne noch mehr Tabellen?[J/N]")
if Mehr=="J" or Mehr=="j":
Verschiebungsf=input("Welchen Verschiebungsfaktor hätten sie gerne?")
Verschiebungsfaktor=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
Faktor=Verschiebungsfaktor.index(int(Verschiebungsf))
Alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
print("a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|")
print("---------------------------------------------------")
for a in range(1,27):
print( Alphabet[(Faktor+1)%26],end="|")
Faktor=Faktor+1
Ende=input("Wollen sie jetzt mit dem Programm fortfahren?[J/N]")
if Ende=="J" or Ende=="j":
while True:
Text=input("Bitte Text eingeben:")
Antwort=input("Sollen alle Schlüssel durchprobiert werden?[J/N]")
if Antwort=="J" or Antwort=="j":
for a in range(1,26):
Schlüssel=a
Anzahl=len(Text)
Alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
def Buchstaben(i):
Buchstabe=Text[i]
Position=Alphabet.index(Buchstabe)
Neu=Position+Schlüssel
if Neu==26:
return 0
else:
return Neu%26
for j in range(0,Anzahl):
print(Alphabet[Buchstaben(j)],end="")
print(" ")
elif Antwort=="N" or Antwort== "n":
Schlüssel=int(input("Schlüssel eingeben:"))
Anzahl=len(Text)
Alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
def Buchstaben(i):
Buchstabe=Text[i]
Position=Alphabet.index(Buchstabe)
Neu=Position+Schlüssel
if Neu==26:
return 0
else:
return Neu%26
for j in range(0,Anzahl):
print(Alphabet[Buchstaben(j)],end="")
print("------------------------------------------------------")
Weiter=input("Soll das Programm wiederholtwerden?[Enter/Nein]")
if Weiter=="Nein":
break
else:
print("Schade, dass Sie mein Programm nicht ausprobiert haben.")
print("Schönen Tag noch.")
else:
while True:
Text=input("Bitte Text eingeben:")
Antwort=input("Sollen alle Schlüssel durchprobiert werden?[J/N]")
if Antwort=="J" or Antwort=="j":
for a in range(1,26):
Schlüssel=a
Anzahl=len(Text)
Alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
def Buchstaben(i):
Buchstabe=Text[i]
Position=Alphabet.index(Buchstabe)
Neu=Position+Schlüssel
if Neu==26:
return 0
else:
return Neu%26
for j in range(0,Anzahl):
print(Alphabet[Buchstaben(j)],end="")
print(" ")
elif Antwort=="N" or Antwort== "n":
Schlüssel=int(input("Schlüssel eingeben:"))
Anzahl=len(Text)
Alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
def Buchstaben(i):
Buchstabe=Text[i]
Position=Alphabet.index(Buchstabe)
Neu=Position+Schlüssel
if Neu==26:
return 0
else:
return Neu%26
for j in range(0,Anzahl):
print(Alphabet[Buchstaben(j)],end="")
Weiter=input("Soll das Programm wiederholtwerden?[Enter/Nein]")
if Weiter=="Nein"or Weiter=="nein"or Weiter=="n" or Weiter=="N":
break