mono-substitution
This commit is contained in:
13
app/app.py
13
app/app.py
@@ -194,6 +194,9 @@ def auswahl_verarbeiten():
|
||||
elif auswahl == "Wolseley-Chiffre":
|
||||
st.session_state.output_text = tools.wolseley(text, additional_parameter)
|
||||
st.session_state.map_data = None
|
||||
elif auswahl == "Mono.-Substitution":
|
||||
st.session_state.output_text = tools.monoalphasubstitution(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
|
||||
@@ -282,6 +285,11 @@ option = st.sidebar.radio("hidden_label",
|
||||
"T9-EN dekodieren",
|
||||
"Vigenere-Chiffre",
|
||||
"Wolseley-Chiffre",
|
||||
"Mono.-Substitution",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Dummy mit Karte",
|
||||
),
|
||||
@@ -302,6 +310,11 @@ elif option in ["Vigenere-Chiffre", "Wolseley-Chiffre"]:
|
||||
"Schlüsselwort:",
|
||||
placeholder="Schlüsselwort hier eingeben"
|
||||
)
|
||||
elif option in ["Mono.-Substitution"]:
|
||||
additional_parameter = st.text_input(
|
||||
"Schlüsselwort/Schlüsselalphabet:",
|
||||
placeholder="Schlüsselwort/Schlüsselalphabet hier eingeben"
|
||||
)
|
||||
# Button zum manuellen Ausführen der Verarbeitungsfunktion
|
||||
if st.button(f"{st.session_state.option}"):
|
||||
auswahl_verarbeiten()
|
||||
|
||||
79
app/tools.py
79
app/tools.py
@@ -1896,7 +1896,7 @@ def vigenere(eingabetext, pw):
|
||||
return ausgabetext
|
||||
|
||||
def wolseley(eingabetext, pw):
|
||||
hilfetext = ("HILFE: ### Wolseley-Chiffre\n"
|
||||
hilfetext = ("### 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 "
|
||||
@@ -1951,21 +1951,21 @@ def wolseley(eingabetext, pw):
|
||||
else:
|
||||
atxt += b
|
||||
return atxt
|
||||
'''
|
||||
def atbash():
|
||||
hilfetext = """HILFE: [Atbash-Chiffre]
|
||||
Atbash ist eine einfache Ersetzungschiffre die für
|
||||
das hebräische Alphabet entwickelt wurde, welche
|
||||
später auf das lateinische Alphabet übertragen wurde.
|
||||
Dabei wird dem normalen Alphabet ein rückwärtsgelesenes
|
||||
Alphabet gegenüber gestellt. A wird zu Z, B zu Y usw.
|
||||
Kodierung und Dekodierung erfolgt über die selbe Funktion.
|
||||
"""
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
def atbash(eingabetext):
|
||||
hilfetext = ("### Atbash-Chiffre\n"
|
||||
"Atbash ist eine einfache Ersetzungschiffre die für das hebräische Alphabet entwickelt wurde, welche "
|
||||
"später auf das lateinische Alphabet übertragen wurde. Dabei wird dem normalen Alphabet ein "
|
||||
"rückwärts gelesenes Alphabet gegenüber gestellt. A wird zu Z, B zu Y usw. Kodierung und Dekodierung "
|
||||
"erfolgt über die selbe Funktion. \n \n"
|
||||
"Codealpahbet: \n"
|
||||
"| | | | | | | | | | | | | | | | | | | | | | | | | | |\n"
|
||||
"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n"
|
||||
"|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|\n"
|
||||
"|Z|Y|X|W|V|U|T|S|R|Q|P|O|N|M|L|K|J|I|H|G|F|E|D|C|B|A|")
|
||||
text = eingabetext.rstrip()
|
||||
if text == "":
|
||||
Ausgabe.insert(1.0, hilfetext + "\n")
|
||||
return hilfetext
|
||||
else:
|
||||
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
uabc = abc[::-1]
|
||||
@@ -1981,36 +1981,33 @@ Kodierung und Dekodierung erfolgt über die selbe Funktion.
|
||||
atxt += cabc[b.upper()].lower()
|
||||
else:
|
||||
atxt += b
|
||||
Ausgabe.insert(1.0, atxt + "\n")
|
||||
return atxt
|
||||
|
||||
|
||||
def monoalphasubstitution():
|
||||
hilfetext = """HILFE: [Monoalphabetische Substitutions-Chiffre]
|
||||
Bei der monoalphabetischen Substitution wird jedem Buchstaben des
|
||||
Alphabet dem Buchstaben eines Schlüsselalphabets zugeordnet:
|
||||
Bsp. Klartextalphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
Schlüsselalphabet: DSBJFALKNVPOQXYWCEGHIMRTUZ
|
||||
Spezialformen dieser Chiffre sind Atbash, Cesar, Rot13
|
||||
Die Funktion hier arbeitet so, daß entweder ein komplettes
|
||||
Schlüsselalphabet oder ein Schlüsselwort verwendet werden kann.
|
||||
Wird ein Schlüsselwort genutzt wird der Rest des Schlüsselalphabet
|
||||
automatisch aufgefüllt.
|
||||
Aus dem Schlüsselwort GutenMorgenLiebeSonne wird dabei dann das
|
||||
Schlüsselalphabet: GUTENMORLIBSACDFHJKPQVWXYZ
|
||||
"""
|
||||
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
def monoalphasubstitution(eingabetext, pw):
|
||||
hilfetext = ("### Monoalphabetische Substitutions-Chiffre\n"
|
||||
"Bei der monoalphabetischen Substitution wird jedem Buchstaben des Alphabets der Buchstabe eines "
|
||||
"Schlüsselalphabets zugeordnet: \n"
|
||||
"|Bsp.| |\n"
|
||||
"|----|-|\n"
|
||||
"|Klartextalphabet|ABCDEFGHIJKLMNOPQRSTUVWXYZ|\n"
|
||||
"|Schlüsselalphabet|DSBJFALKNVPOQXYWCEGHIMRTUZ|\n \n"
|
||||
"Spezialformen dieser Chiffre sind Atbash, Cesar, Rot13. Die Funktion hier arbeitet so, daß entweder "
|
||||
"ein komplettes Schlüsselalphabet oder ein Schlüsselwort verwendet werden kann. Bei Verwendung eines "
|
||||
"Schlüsselwortes, wird der Rest des Schlüsselalphabets automatisch aufgefüllt. \n"
|
||||
"Aus dem Schlüsselwort GutenMorgenLiebeSonne wird z. B. dann das Schlüsselalphabet: "
|
||||
"GUTENMORLIBSACDFHJKPQVWXYZ \n"
|
||||
"| | |\n|-|-|\n|Schlüsselwort|GutenMorgenLiebeSonne|\n|Schlüsselalphabet|GUTENMORLIBSACDFHJKPQVWXYZ|")
|
||||
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:
|
||||
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
for b in pw:
|
||||
if b.upper() not in abc:
|
||||
Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re")
|
||||
return
|
||||
return "Das Schlüsselwort/Schlüsselalphabet darf nur die Buchstaben A-Z / a-z enthalten!"
|
||||
cabc = ""
|
||||
for b in pw.upper() + abc:
|
||||
if b not in cabc:
|
||||
@@ -2037,14 +2034,12 @@ Schlüsselalphabet: GUTENMORLIBSACDFHJKPQVWXYZ
|
||||
decoded_txt += ucab[b.upper()].lower()
|
||||
else:
|
||||
decoded_txt += b
|
||||
ausgabetext = f"_Dekodiert:_ \n{decoded_txt} \n \n"
|
||||
ausgabetext += f"_Kodiert:_ \n{encoded_txt} \n \n"
|
||||
if len(pw) < len(abc):
|
||||
Ausgabe.insert(1.0, "Schlüsselalphabet wurde wie folgt aufgefüllt: " + cabc + "\n", "gr")
|
||||
Ausgabe.insert(1.0, encoded_txt + "\n")
|
||||
Ausgabe.insert(1.0, "Kodiert:\n", "bu")
|
||||
Ausgabe.insert(1.0, decoded_txt + "\n")
|
||||
Ausgabe.insert(1.0, "Dekodiert:\n", "bu")
|
||||
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user