This commit is contained in:
2025-07-25 11:54:03 +02:00
parent 8e47292ac2
commit 49ce093529
2 changed files with 29 additions and 39 deletions

View File

@@ -191,6 +191,9 @@ def auswahl_verarbeiten():
elif auswahl == "Vigenere-Chiffre": elif auswahl == "Vigenere-Chiffre":
st.session_state.output_text = tools.vigenere(text, additional_parameter) st.session_state.output_text = tools.vigenere(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Wolseley-Chiffre":
st.session_state.output_text = tools.wolseley(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
@@ -278,7 +281,7 @@ option = st.sidebar.radio("hidden_label",
"T9-DE dekodieren", "T9-DE dekodieren",
"T9-EN dekodieren", "T9-EN dekodieren",
"Vigenere-Chiffre", "Vigenere-Chiffre",
"", "Wolseley-Chiffre",
"", "",
"Dummy mit Karte", "Dummy mit Karte",
), ),
@@ -294,7 +297,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 == "Vigenere-Chiffre": elif option in ["Vigenere-Chiffre", "Wolseley-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

@@ -1894,47 +1894,35 @@ def vigenere(eingabetext, pw):
ausgabetext += f"_Dekodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{decoded_text_s} \n \n" ausgabetext += f"_Dekodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{decoded_text_s} \n \n"
ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s}" ausgabetext += f"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s}"
return ausgabetext return ausgabetext
'''
def wolseley(): def wolseley(eingabetext, pw):
hilfetext = """HILFE: [Wolseley-Chiffre] hilfetext = ("HILFE: ### Wolseley-Chiffre\n"
Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! "Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! Die Woseley-Chiffre arbeitet mit einem "
Die Woseley-Chiffre arbeitet mit einem Schlüsselwort über "Schlüsselwort über welches dann ein Codealphabet/Codequadrat gebildet wird mit welchem dann sowohl "
welches dann ein Codequadrat/Codealphabet gebildet wird "kodiert als auch dekodiert wird. Angefangen wird dabei mit dem jeweils ersten Vorkommen eines "
mit welchem dann sowohl kodiert als auch dekodiert wird. "Buchstaben im Schlüsselwort und danach folgen die restlichen Buchstaben des Alphabets die nicht im "
Angefangen wird dabei mit dem jeweils ersten Vorkommen "Schlüsselwort vorkommen. Da hier nur 25 Zeichen zur Verfügung stehen wird das J mit dem I "
eines Buchstaben im Schlüsselwort und danach folgen die "zusammengefasst und als I behandelt und dargestellt. Sonstige Zeichen die nicht im Codealphabet "
restlichen Buchstaben des Alphabets die nicht im "vorhanden sind werden unverändert ausgegeben. \n \n"
Schlüsselwort vorkommen. Da hier nur 25 Zeichen zur "Codealpahbet mit Schlüsselwort: Teebaum \n"
Verfügung stehen wird das J mit dem I zusammengefasst "| | | | | | | | | | | | | | | | | | | | | | | | | |\n"
und als I behandelt und dargestellt. Sonstige Zeichen "|-|-|-|-|-|-|-|-|-|-|-|---|-|---|-|-|-|-|-|-|-|-|-|-|-|\n"
die nicht im Codealphabet vorhanden sind werden unverändert "|T|E|B|A|U|M|C|D|F|G|H|I/J|K|L |N|O|P|Q|R|S|V|W|X|Y|Z|\n"
ausgegeben. "|Z|Y|X|W|V|S|R|Q|P|O|N|L |K|I/J|H|G|F|D|C|M|U|A|B|E|T|\n \n"
Codequadrat mit Schlüsselwort: Teebaum "Bei der Chiffrierung/Dechiffrierung wird im Text nun der erste Buchstabe mit dem letzten getauscht, "
1 2 3 4 5 "der 2. mit dem Vorletzten, usw. also aus T wird Z und umgekehrt,E<->Y, B<->X, A<->W usw.. nur ein "
1 T E B A U "K bleibt ein K")
2 M C D F G
3 H I K L N
4 O P Q R S
5 V W X Y Z
Bei der Chiffrierung/Dechiffrierung wird im Text nun der
erste Buchstabe mit dem letzten getauscht, der 2. mit dem
Vorletzten, usw.
also aus T wird Z und umgekehrt,E<->Y, B<->X, A<->W usw..
nur ein K bleibt ein K
"""
abc = "ABCDEFGHIKLMNOPQRSTUVWXYZ" # j wird als i chiffriert abc = "ABCDEFGHIKLMNOPQRSTUVWXYZ" # j wird als i chiffriert
if pw is None:
eingabetext = Eingabe.get(1.0, END) 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:
for b in pw: for b in pw:
if b.upper() not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": if b.upper() not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re") return "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!"
return
text = text.upper() text = text.upper()
pw = pw.upper() pw = pw.upper()
if "J" in text: if "J" in text:
@@ -1962,9 +1950,8 @@ nur ein K bleibt ein K
atxt += cabc[b] atxt += cabc[b]
else: else:
atxt += b atxt += b
Ausgabe.insert(1.0, atxt + "\n") return atxt
'''
def atbash(): def atbash():
hilfetext = """HILFE: [Atbash-Chiffre] hilfetext = """HILFE: [Atbash-Chiffre]
Atbash ist eine einfache Ersetzungschiffre die für Atbash ist eine einfache Ersetzungschiffre die für