diff --git a/app/app.py b/app/app.py index 1282de7..abb8a21 100644 --- a/app/app.py +++ b/app/app.py @@ -198,6 +198,9 @@ def auswahl_verarbeiten(): elif auswahl == "Mono.-Substitution": st.session_state.output_text = tools.monoalphasubstitution(text, additional_parameter) st.session_state.map_data = None + elif auswahl == "Autokey-Chiffre": + st.session_state.output_text = tools.autokey(text, additional_parameter) + st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None @@ -287,7 +290,7 @@ option = st.sidebar.radio("hidden_label", "Vigenere-Chiffre", "Wolseley-Chiffre", "Mono.-Substitution", - "", + "Autokey-Chiffre", "", "", "", @@ -306,7 +309,7 @@ if option == "Dummy mit Karte": "Optionaler Zusatztext für Dummy mit Karte", placeholder="Zusätzliche Eingabe hier" ) -elif option in ["Vigenere-Chiffre", "Wolseley-Chiffre"]: +elif option in ["Vigenere-Chiffre", "Wolseley-Chiffre", "Autokey-Chiffre"]: additional_parameter = st.text_input( "Schlüsselwort:", placeholder="Schlüsselwort hier eingeben" diff --git a/app/tools.py b/app/tools.py index 25ddefc..582e344 100644 --- a/app/tools.py +++ b/app/tools.py @@ -2041,25 +2041,19 @@ def monoalphasubstitution(eingabetext, pw): if len(pw) < len(abc): ausgabetext += f"Schlüsselalphabet wurde wie folgt aufgefüllt: {cabc}" return ausgabetext -''' -def autokey(): - hilfetext = """HILFE: [Autokey-Chiffre] -Die Autokey-Chiffre arbeitet nach dem selben -Prinzip wie Vignere-Chiffre mit dem Unterschied, -daß hier am Ende des Schlüsselwortes nicht wieder -und wieder das Schlüsselwort angehängt wird, -sondern der Klartext an das Schlüsselwort -angehangen wird. -Der eingegebene Text wird hier mit dem eingegebenen -Schlüsselwort kodiert und dekodiert ausgegeben. -""" - - eingabetext = Eingabe.get(1.0, END) + +def autokey(eingabetext, pw): + hilfetext = ("### Autokey-Chiffre\n" + "Die Autokey-Chiffre arbeitet nach dem selben Prinzip wie Vignere-Chiffre mit dem Unterschied, dass " + "hier am Ende des Schlüsselwortes nicht wieder und wieder das Schlüsselwort angehängt wird, sondern " + "der Klartext an das Schlüsselwort angehangen wird. Der eingegebene Text wird hier mit dem " + "eingegebenen Schlüsselwort kodiert und dekodiert ausgegeben.") + if pw is None: + return hilfetext text = eingabetext.rstrip() - pw = PW_Eingabe.get() pw = pw.strip() if text == "" or pw == "": - Ausgabe.insert(1.0, hilfetext + "\n") + return hilfetext else: bw = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, @@ -2070,8 +2064,7 @@ Schlüsselwort kodiert und dekodiert ausgegeben. p_wd = "" for b in pw: if b.upper() not in bw: - Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re") - return + return "Das Schlüsselwort darf nur die Buchstaben A-Z / a-z enthalten!" else: p_we += b.upper() # Sonderzeichen aus PW entfernen und p_wd += b.upper() @@ -2112,12 +2105,10 @@ Schlüsselwort kodiert und dekodiert ausgegeben. decoded_text += ubw[ba] else: decoded_text += ubw[ba].lower() - Ausgabe.insert(1.0, encoded_text + "\n") - Ausgabe.insert(1.0, "Kodiert:\n", "bu") - Ausgabe.insert(1.0, decoded_text + "\n") - Ausgabe.insert(1.0, "Dekodiert:\n", "bu") - - + ausgabetext = f"_Dekodiert:_ \n{decoded_text} \n \n" + ausgabetext += f"_Kodiert:_ \n{encoded_text}" + return ausgabetext +''' def polybios_encode(): hilfetext = """HILFE: [Polybios-Chiffre kodieren] Die 5x5 Polybios-Chiffre kodiert Buchstaben zu zweistelligen