This commit is contained in:
2025-07-25 16:08:58 +02:00
parent b448e43d55
commit a8e36d0a4c
2 changed files with 20 additions and 26 deletions

View File

@@ -198,6 +198,9 @@ def auswahl_verarbeiten():
elif auswahl == "Mono.-Substitution": elif auswahl == "Mono.-Substitution":
st.session_state.output_text = tools.monoalphasubstitution(text, additional_parameter) st.session_state.output_text = tools.monoalphasubstitution(text, additional_parameter)
st.session_state.map_data = None 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": elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text) st.session_state.output_text = tools.REPLACE(text)
st.session_state.map_data = None st.session_state.map_data = None
@@ -287,7 +290,7 @@ option = st.sidebar.radio("hidden_label",
"Vigenere-Chiffre", "Vigenere-Chiffre",
"Wolseley-Chiffre", "Wolseley-Chiffre",
"Mono.-Substitution", "Mono.-Substitution",
"", "Autokey-Chiffre",
"", "",
"", "",
"", "",
@@ -306,7 +309,7 @@ if option == "Dummy mit Karte":
"Optionaler Zusatztext für Dummy mit Karte", "Optionaler Zusatztext für Dummy mit Karte",
placeholder="Zusätzliche Eingabe hier" 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( additional_parameter = st.text_input(
"Schlüsselwort:", "Schlüsselwort:",
placeholder="Schlüsselwort hier eingeben" placeholder="Schlüsselwort hier eingeben"

View File

@@ -2041,25 +2041,19 @@ def monoalphasubstitution(eingabetext, pw):
if len(pw) < len(abc): if len(pw) < len(abc):
ausgabetext += f"Schlüsselalphabet wurde wie folgt aufgefüllt: {cabc}" ausgabetext += f"Schlüsselalphabet wurde wie folgt aufgefüllt: {cabc}"
return ausgabetext 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() text = eingabetext.rstrip()
pw = PW_Eingabe.get()
pw = pw.strip() pw = pw.strip()
if text == "" or pw == "": if text == "" or pw == "":
Ausgabe.insert(1.0, hilfetext + "\n") return hilfetext
else: 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, 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, 'M': 13, 'N': 14,
@@ -2070,8 +2064,7 @@ Schlüsselwort kodiert und dekodiert ausgegeben.
p_wd = "" p_wd = ""
for b in pw: for b in pw:
if b.upper() not in bw: if b.upper() not in bw:
Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re") return "Das Schlüsselwort darf nur die Buchstaben A-Z / a-z enthalten!"
return
else: else:
p_we += b.upper() # Sonderzeichen aus PW entfernen und p_we += b.upper() # Sonderzeichen aus PW entfernen und
p_wd += b.upper() p_wd += b.upper()
@@ -2112,12 +2105,10 @@ Schlüsselwort kodiert und dekodiert ausgegeben.
decoded_text += ubw[ba] decoded_text += ubw[ba]
else: else:
decoded_text += ubw[ba].lower() decoded_text += ubw[ba].lower()
Ausgabe.insert(1.0, encoded_text + "\n") ausgabetext = f"_Dekodiert:_ \n{decoded_text} \n \n"
Ausgabe.insert(1.0, "Kodiert:\n", "bu") ausgabetext += f"_Kodiert:_ \n{encoded_text}"
Ausgabe.insert(1.0, decoded_text + "\n") return ausgabetext
Ausgabe.insert(1.0, "Dekodiert:\n", "bu") '''
def polybios_encode(): def polybios_encode():
hilfetext = """HILFE: [Polybios-Chiffre kodieren] hilfetext = """HILFE: [Polybios-Chiffre kodieren]
Die 5x5 Polybios-Chiffre kodiert Buchstaben zu zweistelligen Die 5x5 Polybios-Chiffre kodiert Buchstaben zu zweistelligen