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":
st.session_state.output_text = tools.vigenere(text, additional_parameter)
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":
st.session_state.output_text = tools.REPLACE(text)
st.session_state.map_data = None
@@ -278,7 +281,7 @@ option = st.sidebar.radio("hidden_label",
"T9-DE dekodieren",
"T9-EN dekodieren",
"Vigenere-Chiffre",
"",
"Wolseley-Chiffre",
"",
"Dummy mit Karte",
),
@@ -294,7 +297,7 @@ if option == "Dummy mit Karte":
"Optionaler Zusatztext für Dummy mit Karte",
placeholder="Zusätzliche Eingabe hier"
)
elif option == "Vigenere-Chiffre":
elif option in ["Vigenere-Chiffre", "Wolseley-Chiffre"]:
additional_parameter = st.text_input(
"Schlüsselwort:",
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"_Kodiert - Sonderzeichen verbrauchen Schlüsselbuchstaben:_ \n{encoded_text_s}"
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
"""
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
eingabetext = Eingabe.get(1.0, END)
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:
for b in pw:
if b.upper() not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re")
return
return "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!"
text = text.upper()
pw = pw.upper()
if "J" in text:
@@ -1962,9 +1950,8 @@ nur ein K bleibt ein K
atxt += cabc[b]
else:
atxt += b
Ausgabe.insert(1.0, atxt + "\n")
return atxt
'''
def atbash():
hilfetext = """HILFE: [Atbash-Chiffre]
Atbash ist eine einfache Ersetzungschiffre die für