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":
|
elif auswahl == "Wolseley-Chiffre":
|
||||||
st.session_state.output_text = tools.wolseley(text, additional_parameter)
|
st.session_state.output_text = tools.wolseley(text, additional_parameter)
|
||||||
st.session_state.map_data = None
|
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":
|
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
|
||||||
@@ -282,6 +285,11 @@ option = st.sidebar.radio("hidden_label",
|
|||||||
"T9-EN dekodieren",
|
"T9-EN dekodieren",
|
||||||
"Vigenere-Chiffre",
|
"Vigenere-Chiffre",
|
||||||
"Wolseley-Chiffre",
|
"Wolseley-Chiffre",
|
||||||
|
"Mono.-Substitution",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"",
|
"",
|
||||||
"Dummy mit Karte",
|
"Dummy mit Karte",
|
||||||
),
|
),
|
||||||
@@ -302,6 +310,11 @@ elif option in ["Vigenere-Chiffre", "Wolseley-Chiffre"]:
|
|||||||
"Schlüsselwort:",
|
"Schlüsselwort:",
|
||||||
placeholder="Schlüsselwort hier eingeben"
|
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
|
# Button zum manuellen Ausführen der Verarbeitungsfunktion
|
||||||
if st.button(f"{st.session_state.option}"):
|
if st.button(f"{st.session_state.option}"):
|
||||||
auswahl_verarbeiten()
|
auswahl_verarbeiten()
|
||||||
|
|||||||
79
app/tools.py
79
app/tools.py
@@ -1896,7 +1896,7 @@ def vigenere(eingabetext, pw):
|
|||||||
return ausgabetext
|
return ausgabetext
|
||||||
|
|
||||||
def wolseley(eingabetext, pw):
|
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 "
|
"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 "
|
"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 "
|
"kodiert als auch dekodiert wird. Angefangen wird dabei mit dem jeweils ersten Vorkommen eines "
|
||||||
@@ -1951,21 +1951,21 @@ def wolseley(eingabetext, pw):
|
|||||||
else:
|
else:
|
||||||
atxt += b
|
atxt += b
|
||||||
return atxt
|
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()
|
text = eingabetext.rstrip()
|
||||||
if text == "":
|
if text == "":
|
||||||
Ausgabe.insert(1.0, hilfetext + "\n")
|
return hilfetext
|
||||||
else:
|
else:
|
||||||
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
uabc = abc[::-1]
|
uabc = abc[::-1]
|
||||||
@@ -1981,36 +1981,33 @@ Kodierung und Dekodierung erfolgt über die selbe Funktion.
|
|||||||
atxt += cabc[b.upper()].lower()
|
atxt += cabc[b.upper()].lower()
|
||||||
else:
|
else:
|
||||||
atxt += b
|
atxt += b
|
||||||
Ausgabe.insert(1.0, atxt + "\n")
|
return atxt
|
||||||
|
|
||||||
|
def monoalphasubstitution(eingabetext, pw):
|
||||||
def monoalphasubstitution():
|
hilfetext = ("### Monoalphabetische Substitutions-Chiffre\n"
|
||||||
hilfetext = """HILFE: [Monoalphabetische Substitutions-Chiffre]
|
"Bei der monoalphabetischen Substitution wird jedem Buchstaben des Alphabets der Buchstabe eines "
|
||||||
Bei der monoalphabetischen Substitution wird jedem Buchstaben des
|
"Schlüsselalphabets zugeordnet: \n"
|
||||||
Alphabet dem Buchstaben eines Schlüsselalphabets zugeordnet:
|
"|Bsp.| |\n"
|
||||||
Bsp. Klartextalphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
"|----|-|\n"
|
||||||
Schlüsselalphabet: DSBJFALKNVPOQXYWCEGHIMRTUZ
|
"|Klartextalphabet|ABCDEFGHIJKLMNOPQRSTUVWXYZ|\n"
|
||||||
Spezialformen dieser Chiffre sind Atbash, Cesar, Rot13
|
"|Schlüsselalphabet|DSBJFALKNVPOQXYWCEGHIMRTUZ|\n \n"
|
||||||
Die Funktion hier arbeitet so, daß entweder ein komplettes
|
"Spezialformen dieser Chiffre sind Atbash, Cesar, Rot13. Die Funktion hier arbeitet so, daß entweder "
|
||||||
Schlüsselalphabet oder ein Schlüsselwort verwendet werden kann.
|
"ein komplettes Schlüsselalphabet oder ein Schlüsselwort verwendet werden kann. Bei Verwendung eines "
|
||||||
Wird ein Schlüsselwort genutzt wird der Rest des Schlüsselalphabet
|
"Schlüsselwortes, wird der Rest des Schlüsselalphabets automatisch aufgefüllt. \n"
|
||||||
automatisch aufgefüllt.
|
"Aus dem Schlüsselwort GutenMorgenLiebeSonne wird z. B. dann das Schlüsselalphabet: "
|
||||||
Aus dem Schlüsselwort GutenMorgenLiebeSonne wird dabei dann das
|
"GUTENMORLIBSACDFHJKPQVWXYZ \n"
|
||||||
Schlüsselalphabet: GUTENMORLIBSACDFHJKPQVWXYZ
|
"| | |\n|-|-|\n|Schlüsselwort|GutenMorgenLiebeSonne|\n|Schlüsselalphabet|GUTENMORLIBSACDFHJKPQVWXYZ|")
|
||||||
"""
|
if pw is None:
|
||||||
|
return hilfetext
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
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:
|
||||||
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
for b in pw:
|
for b in pw:
|
||||||
if b.upper() not in abc:
|
if b.upper() not in abc:
|
||||||
Ausgabe.insert(1.0, "Das Passwort darf nur die Buchstaben A-Z / a-z enthalten!\n", "re")
|
return "Das Schlüsselwort/Schlüsselalphabet darf nur die Buchstaben A-Z / a-z enthalten!"
|
||||||
return
|
|
||||||
cabc = ""
|
cabc = ""
|
||||||
for b in pw.upper() + abc:
|
for b in pw.upper() + abc:
|
||||||
if b not in cabc:
|
if b not in cabc:
|
||||||
@@ -2037,14 +2034,12 @@ Schlüsselalphabet: GUTENMORLIBSACDFHJKPQVWXYZ
|
|||||||
decoded_txt += ucab[b.upper()].lower()
|
decoded_txt += ucab[b.upper()].lower()
|
||||||
else:
|
else:
|
||||||
decoded_txt += b
|
decoded_txt += b
|
||||||
|
ausgabetext = f"_Dekodiert:_ \n{decoded_txt} \n \n"
|
||||||
|
ausgabetext += f"_Kodiert:_ \n{encoded_txt} \n \n"
|
||||||
if len(pw) < len(abc):
|
if len(pw) < len(abc):
|
||||||
Ausgabe.insert(1.0, "Schlüsselalphabet wurde wie folgt aufgefüllt: " + cabc + "\n", "gr")
|
ausgabetext += f"Schlüsselalphabet wurde wie folgt aufgefüllt: {cabc}"
|
||||||
Ausgabe.insert(1.0, encoded_txt + "\n")
|
return ausgabetext
|
||||||
Ausgabe.insert(1.0, "Kodiert:\n", "bu")
|
'''
|
||||||
Ausgabe.insert(1.0, decoded_txt + "\n")
|
|
||||||
Ausgabe.insert(1.0, "Dekodiert:\n", "bu")
|
|
||||||
|
|
||||||
|
|
||||||
def autokey():
|
def autokey():
|
||||||
hilfetext = """HILFE: [Autokey-Chiffre]
|
hilfetext = """HILFE: [Autokey-Chiffre]
|
||||||
Die Autokey-Chiffre arbeitet nach dem selben
|
Die Autokey-Chiffre arbeitet nach dem selben
|
||||||
|
|||||||
Reference in New Issue
Block a user