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():
hilfetext = """HILFE: [Wolseley-Chiffre]
Die Eingabe eines Schlüsselwortes ist hier erforderlich!!!
Die Woseley-Chiffre arbeitet mit einem Schlüsselwort über
welches dann ein Codequadrat/Codealphabet gebildet wird
mit welchem dann sowohl kodiert als auch dekodiert wird.
Angefangen wird dabei mit dem jeweils ersten Vorkommen
eines Buchstaben im Schlüsselwort und danach folgen die
restlichen Buchstaben des Alphabets die nicht im
Schlüsselwort vorkommen. Da hier nur 25 Zeichen zur
Verfügung stehen wird das J mit dem I zusammengefasst
und als I behandelt und dargestellt. Sonstige Zeichen
die nicht im Codealphabet vorhanden sind werden unverändert
ausgegeben.
Codequadrat mit Schlüsselwort: Teebaum
1 2 3 4 5
1 T E B A U
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
eingabetext = Eingabe.get(1.0, END) def wolseley(eingabetext, pw):
hilfetext = ("HILFE: ### Wolseley-Chiffre\n"
"Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! Die Woseley-Chiffre arbeitet mit einem "
"Schlüsselwort über welches dann ein Codealphabet/Codequadrat gebildet wird mit welchem dann sowohl "
"kodiert als auch dekodiert wird. Angefangen wird dabei mit dem jeweils ersten Vorkommen eines "
"Buchstaben im Schlüsselwort und danach folgen die restlichen Buchstaben des Alphabets die nicht im "
"Schlüsselwort vorkommen. Da hier nur 25 Zeichen zur Verfügung stehen wird das J mit dem I "
"zusammengefasst und als I behandelt und dargestellt. Sonstige Zeichen die nicht im Codealphabet "
"vorhanden sind werden unverändert ausgegeben. \n \n"
"Codealpahbet mit Schlüsselwort: Teebaum \n"
"| | | | | | | | | | | | | | | | | | | | | | | | | |\n"
"|-|-|-|-|-|-|-|-|-|-|-|---|-|---|-|-|-|-|-|-|-|-|-|-|-|\n"
"|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"
"|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"
"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
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:
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