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":
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"

View File

@@ -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