610 lines
46 KiB
Python
610 lines
46 KiB
Python
# Copyright (c) 2025 Martin Kayser (tebarius)
|
|
# Licensed under the MIT License. See LICENSE file in the project root.
|
|
|
|
cesar_all = ("### Cesar-Verschiebe-Chiffre\n"
|
|
"Von der eingegebenen Zeichenkette werden, alle möglichen Verschiebungen gemäß der Cesarchiffre generiert "
|
|
"und ausgegeben. Sonderzeichen und Zahlen werden unverändert wiedergegeben.")
|
|
|
|
buchstabenwortwert = ("### Buchstabenwortwerte ermitteln\n"
|
|
"Diese Funktion berechnet den Buchstabenwert der eingegeben Zeichenkette. (A=1 B=2 .... Ä=27 "
|
|
"Ö=28 Ü=29 ß=30) Bei mehreren durch Leerzeichen getrennten Wörtern wird auch für jedes einzelne "
|
|
"Wort der Wortwert errechnet. \n"
|
|
"Desweiteren wird die Quersumme und die iterierte Quersumme des Gesamtbuchstabenwertes als auch "
|
|
"für jedes Wort das Buchstabenwertprodukt und das Gesamtbuchstabenwertprodukt ermittelt.")
|
|
|
|
buchstabenwert_zu_text = ("### Buchstabenwerte zu Text\n"
|
|
" Die eingegebenen Buchstabenwerte werden in die entsprechenden Buchstaben umgewandelt."
|
|
" (A=1 B=2 .... Ä=27 Ö=28 Ü=29 ß=30) Als Trennungszeichen zwischen den Zahlen sind folgende"
|
|
" Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten"
|
|
" möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen"
|
|
" werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
zeichenkette_reverse = ("### Zeichenkette rückwärts\n"
|
|
"Diese Funktion gibt die eingegebene Zeichenkette von hinten nach vorn gelesen aus.")
|
|
|
|
zeichenanzahl = ("### Zeichenzählen\n"
|
|
"Es wird das Vorkommen jedes einzelnen Zeichens gezählt und ausgegeben. Achtung! Leerzeichen,"
|
|
" Tabulatorzeichen und Zeilenumbrüche werden nur vor dem letzten sichtbaren Zeichen gezählt!!!")
|
|
|
|
quersummen = ("### Quersumme(n)\n"
|
|
"Von den eingegebenen Zahlen werden die Quersummen und iterierten Quersummen errechnet und ausgegeben. "
|
|
"Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
|
|
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen "
|
|
"verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
einschluss_count = ("### Einschlüsse zählen\n"
|
|
"Es werden die Einschlüsse in Buchstaben und Ziffern gezählt. Neben der Anzahl der Einschlüsse für "
|
|
"jeden einzelnen Buchstaben, für jedes Wort und die gesammte Eingabe ermittelt. Da es sich bei der "
|
|
"Zahl 4 je nach Schreibweise um eine Zahl mit oder ohne Einschluß handeln kann, werden beide "
|
|
"Varianten berücksichtigt. \n"
|
|
"!!! Hier ist Klein- und Großschreibung wichtig, denn z.B. b=1 aber B=2 !!!")
|
|
|
|
morse_to_abc = ("### Morsecode zu Text\n"
|
|
"Die Eingabe des Morsecodes hat wie folgt zu erfolgen: - für lang und . für kurz, zwischen den "
|
|
"Buchstaben ein Leerzeichen und als Worttrennung ein / wobei davor und danach ein Leerzeichen steht. "
|
|
"Für unbekannte Morsecodes erscheint in der Ausgabe ein #.")
|
|
|
|
abc_to_morse = ("### Text zu Morsecode\n"
|
|
"Eingabetext wird als Morsecode ausgegeben. Nicht kodierbare Zeichen erscheinen unverändert "
|
|
"in der Ausgabe.")
|
|
|
|
rot5 = ("### ROT 5\n"
|
|
"ROT 5 bezeichnet eine Verschiebechiffrierung, bei welcher die Ziffern 0-9 um je 5 Stellen "
|
|
"verschoben werden. Aus 0 wird 5, aus 1 wird 6, aus 7 wird 2,usw. Kodieren und Dekodieren "
|
|
"geschieht hier mit ein und derselben Funktion, alle Zeichen die keine Ziffern sind werden "
|
|
"unverändert wiedergegeben.")
|
|
|
|
rot13 = ("### ROT 13\n"
|
|
"ROT 13 bezeichnet eine Verschiebechiffrierung, bei welcher die 26 Buchstaben (A-Z) um genau "
|
|
"13 Stellen verschoben werden. Da dies genau die Hälfte des Alphabets ist, wird z.B. aus einem "
|
|
"A ein N und aus einem N ein A und somit wird über die selbe Funktion sowohl kodiert als auch "
|
|
"dekodiert. Die Klein- und Großschreibung bleibt erhalten und alle Zeichen die keine Buchstaben "
|
|
"sind werden unverändert wiedergegeben.")
|
|
|
|
rot18 = ("### ROT 18\n"
|
|
"ROT 18 ist eigentlich nix anderes als, daß hier ROT 5 mit ROT 13 kombiniert wird. Die Buchstaben "
|
|
"A-Z werden um 13 Stellen verschoben und die Ziffern 0-9 um 5 Stellen. Alle sonstigen Zeichen "
|
|
"bleiben unverändert und die Klein- oder Großschreibung bleibt auch erhalten, und auch hier "
|
|
"kodiert/dekodiert ein und dieselbe Funktion.")
|
|
|
|
rot47 = ("### ROT 47\n"
|
|
"Bei ROT47 geschieht eigentlich nix anderes als bei ROT5 oder ROT13 nur das hier die druckbaren "
|
|
"ASCII-Zeichen mit den Werten 33-126(dezimal) zur Auswahl stehen, also nahezu alle Zeichen die auf "
|
|
"eine Standardtastatur aufgedruckt sind. Das Ergebnis ist aber deutlich unlesbarer als z.B. bei "
|
|
"ROT13. Alle weiteren Zeichen (z.B. ÄÖÜß) werden unverändert wiedergegeben und auch hier "
|
|
"kodiert/dekodiert ein und dieselbe Funktion.")
|
|
|
|
ascii_to_dez = ("### Text zu Dezimalzahlen\n"
|
|
"Der eingegebene Text wird in Dezimalzahlen umgewandelt.")
|
|
|
|
dez_to_ascii = ("### Dezimalzahlen zu Text\n"
|
|
"Die eingegebenen Dezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
|
|
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
|
|
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
|
|
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
ascii_to_hex = ("### Text zu Hexadezimalzahlen\n"
|
|
"Der eingegebene Text wird in Hexadezimalzahlen umgewandelt.")
|
|
|
|
hex_to_ascii = ("### Hexadezimalzahlen zu Text\n"
|
|
"Die eingegebenen Hexadezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. "
|
|
"Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
|
|
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den "
|
|
"Zahlen verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
octal_to_ascii = ("### Octalzahlen zu Text\n"
|
|
"Die eingegebenen Octalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
|
|
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
|
|
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
|
|
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
ascii_to_octal = ("### Text zu Octalzahlen\n"
|
|
"Der eingegebene Text wird in Octalzahlen umgewandelt.")
|
|
|
|
ascii_to_bin16 = ("### Text zu Binärzahlen (16 bit)\n"
|
|
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 16bit (16 Zeichen) "
|
|
"umgewandelt.")
|
|
|
|
ascii_to_bin8 = ("### Text zu Binärzahlen (8 bit)\n"
|
|
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 8bit (8 Zeichen) "
|
|
"umgewandelt.")
|
|
|
|
bin_to_ascii = ("### Binärzahlen zu Text\n"
|
|
"Die eingegebenen Binärzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
|
|
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
|
|
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen "
|
|
"verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
|
|
|
|
zahlwortsuche_de = ("### Zahlwortsuche DE 0-12\n"
|
|
"Diese Funktion versucht deutsche Zahlworte zwischen 0 und 12 in einem Text aufzuspüren. Da alle "
|
|
"Zeichen ignoriert werden, welche keine Buchstaben sind, werden auch Zahlwörter gefunden welche sich "
|
|
"z.B. über zwei Worte verteilen.")
|
|
|
|
zahlwortsuche_en = ("### Zahlwortsuche EN 0-15\n"
|
|
"Diese Funktion versucht englische Zahlworte zwischen 0 und 15 in einem Text aufzuspüren. "
|
|
"Da alle Zeichen ignoriert werden, welche keine Buchstaben sind, werden auch Zahlwörter gefunden "
|
|
"welche sich z.B. über zwei Worte verteilen.")
|
|
|
|
kenny_kodieren = ("### Kennyspeak kodieren\n"
|
|
"Hilfe sie haben Kenny getötet.. ach nee er kann ja noch seine unverständlichen m p f -Laute von "
|
|
"sich geben und hier geht es darum normalen Text in genau diese Laute umzusetzen, wo jedem "
|
|
"Buchstaben A-Z eine 3 Zeichen-Kombination zugeordnet ist die sich aus m,p,f zusammensetzt."
|
|
"(a=mmm h=mfp x=fpf)")
|
|
|
|
kenny_dekodieren = ("### Kennyspeak dekodieren\n"
|
|
"Wie? Du verstehst Kenny's mpf-Gebrabbel nicht? Na gut da kann ich helfen!! Nicht kennifiziertes "
|
|
"wird unverändert ausgegeben.")
|
|
|
|
kenny_raten = ("### KENNYspeak raten\n"
|
|
"Diese Funktion dient zum dekodieren von kennyfizierten Texten, bei denen die 3 Buchstaben mpf "
|
|
"vertauscht oder durch andere Zeichen ersetzt wurden. Hierzu werden vor der Dekodierung die 3 "
|
|
"häufigsten Zeichen im Text ermittelt und alle anderen Zeichen entfernt bevor die 6 möglichen "
|
|
"Lösungen ausgegeben werden. (Falls zum kodieren die Zahlen 0,1 oder 2 verwendet wurden, werden "
|
|
"sie durch Buchstaben a,b,c.. ersetzt)")
|
|
|
|
primzahlalphabet_dekodieren = ("### Primzahlalphabet dekodieren\n"
|
|
"Hier können Primzahlen kleiner als 1 Million in Buchstaben umgewandelt werden. Es "
|
|
"wird dabei davon ausgegangen, daß den Primzahlen wiederholend die Buchstaben A-Z "
|
|
"zugeordnet werden,2=A 3=B 5=C 7=D 11=E ... 97=Y 101=Z 103=A 107=B ... usw.")
|
|
|
|
primzahlpruefen = ("### Primzahl prüfen\n"
|
|
"Für eine eingegebene Zahl wird überprüft, ob es sich um eine Primzahl handelt. Ist die eingegebene "
|
|
"Zahl eine Primzahl wird auch informiert, die wievielte Primzahl es ist. Zahlen über 1,299,709 (der "
|
|
"100,000. Primzahl) werden abgelehnt.")
|
|
|
|
nte_primzahl = ("### n.te Primzahl\n"
|
|
"Du willst wissen wie z.B. die 1,000. Primzahl lautet, dann bist du hier genau richtig. Die Funktion "
|
|
"liefert maximal die 100,000. Primzahl.")
|
|
|
|
primfaktoren = ("### Primfaktorenzerlegung\n"
|
|
"Für die eingegebene Zahl werden die Primfaktoren ermittelt und ausgegeben. Sollte die Zahl einen "
|
|
"Primfaktoren haben, welcher größer als 100 Millionen ist, wird die Suche abgebrochen, da die Suche "
|
|
"sonst zu lange dauert. Die Funktion lässt sich damit also auch, bei Zahlen kleiner als 200 Millionen, "
|
|
"dazu benutzen um festzustellen, ob die eingegebene Zahl eine Primzahl ist.")
|
|
|
|
dez_to_hex_oct_bin = ("### Dezimal zu HEX, Octal, Binär\n"
|
|
"Die eingegebenen dezimalen Ganzzahlen werden in die entsprechenden hexadezimalen, octalen und "
|
|
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
|
|
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 "
|
|
"Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
|
|
"nicht erkannte Zeichen behandelt).")
|
|
|
|
hex_to_dez_oct_bin = ("### Hexadezimal zu Dezimal, Octal, Binär\n"
|
|
"Die eingegebenen hexadezimalen Zahlen werden in die entsprechenden dezimalen, octalen und "
|
|
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
|
|
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
|
|
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
|
|
"nicht erkannte Zeichen behandelt).")
|
|
|
|
oct_to_hex_dez_bin = ("### Octal zu HEX, Dezimal, Binär\n"
|
|
"Die eingegebenen octalen Zahlen werden in die entsprechenden hexadezimalen, dezimalen und "
|
|
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
|
|
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
|
|
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
|
|
"nicht erkannte Zeichen behandelt).")
|
|
|
|
bin_to_hex_dez_oct = ("### Binär zu HEX, Dezimal, Octal\n"
|
|
"Die eingegebenen binären Zahlen werden in die entsprechenden hexadezimalen, dezimalen und "
|
|
"octalen Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
|
|
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
|
|
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
|
|
"nicht erkannte Zeichen behandelt).")
|
|
|
|
abc_to_tomtom = ("### Text zu Tomtom\n"
|
|
"Beim Tomtom Code werden die einzelnen Buchstaben durch Kombinationen von / und \\ dargestellt. "
|
|
"Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. Kodiert "
|
|
"werden, können nur die Buchstaben A-Z.")
|
|
|
|
tomtom_to_abc = ("### Tomtom zu Text\n"
|
|
"Beim Tomtom Code werden die einzelnen Buchstaben durch Kombinationen von / und \\ dargestellt. "
|
|
"Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. Kodiert "
|
|
"werden, können nur die Buchstaben A-Z.")
|
|
|
|
text_to_slashpipe = ("### Text zu Slash and Pipe\n"
|
|
"Vergleichbar mit dem Tomtom-Code nur das hier für die Buchstabenkodierung auch | eingesetzt "
|
|
"wird. Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. "
|
|
"Kodiert werden, können nur die Buchstaben A-Z.")
|
|
|
|
slashpipe_to_text = ("### Slash and Pipe zu Text\n"
|
|
"Vergleichbar mit dem Tomtom-Code nur das hier für die Buchstabenkodierung auch der | mit "
|
|
"eingesetzt wird. Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei "
|
|
"Leerzeichen. Dekodiert werden, können nur die Buchstaben A-Z.")
|
|
|
|
periodensystem = ("### Periodensystem: Ordnungszahl<->Symbol\n"
|
|
"Eingegebenen Ordnungszahlen 1-118 aus dem Periodensystem der Elemente werden in die ihnen "
|
|
"zugehörigen Elementsymbole umgewandelt und anschließend als Text ausgegeben, außerdem erscheint "
|
|
"noch eine Ausgabe bei welcher nur die Anfangsbuchstaben der Symbole ausgegeben werden. Werden in "
|
|
"der Eingabe Symbole (z.B. N, He) erkannt werde diese zusammen mit ihren Ordnungszahlen ausgegeben. "
|
|
"Als Trennungszeichen zwischen den Zahlen und/oder Symbolen sind folgende Zeichen erlaubt: "
|
|
"| , _ . - / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen "
|
|
"zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte "
|
|
"Zeichen behandelt).")
|
|
|
|
naknak_to_text = ("### NakNak to Text\n"
|
|
"Nak-Nak / Entensprache / Duck Speak ist eine Spaßsprache, welche vom Owner der Website "
|
|
"[https://schnatterente.net]"
|
|
"(https://web.archive.org/web/20230807065421/https://www.schnatterente.net/) entwickelt wurde. "
|
|
"Diese Funktion übersetzt das Geschnatter in verständliche Buchstaben/Zeichen. !!Bitte unbedingt "
|
|
"die Groß- und Kleinschreibung beibehalten!! Wer diesen Quatsch unbedingt umgekehrt übersetzten "
|
|
"will, wird wohl etwas suchen müssen, da der Original-Übersetzer, der unter "
|
|
"http://uebersetzer.schnatterente.net erreichbar war, nicht mehr online ist und ich ganz bestimmt "
|
|
"keinen hier integrieren werde.")
|
|
|
|
navajo_to_text = ("### Navajo-ABC to Text\n"
|
|
"Die Sprache der Navajo-Indianer wurde im zweiten Weltkrieg für den verschlüßelten Funkverkehr "
|
|
"eingesetzt. Vorteile waren, daß nahezu niemand außer Navajo-Volk die Sprache verstand und es keine "
|
|
"schriftlichen Aufzeichnungen über die Sprache gab. Das Alphabet und die Codewörter wurden dabei von "
|
|
"den Codesprechern (natürlich Navajo's) auswendig gelernt. Die Dekodierfunktion hier übersetzt das "
|
|
"Codealphabet (A-Z), bei welchem es auch so ist, daß unterschiedliche Worte für den selben "
|
|
"Buchstaben stehen, in normalen Text. Leider existieren leicht unterschiedliche Alphabete was die "
|
|
"Wörter bzw. deren Schreibweise angeht im Netz, mit welchen codiert wird, weshalb ich hier nur die "
|
|
"Dekodierung anbiete. weitere Codewörter und Erklärungen gibt es z.B. hier: "
|
|
"https://ww2db.com/other.php?other_id=29 oder hier: "
|
|
"http://math.ucsd.edu/~crypto/Projects/RobertoSandoval/NavajoWindtalkers.pdf")
|
|
|
|
pi_suche = ("### PI Nachkommastellensuche\n"
|
|
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle auszugeben "
|
|
"und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von PI "
|
|
"(3.141592653589793238462643...) zu ermitteln. Aus Performance- und Speicherplatzgründen ist die Suche "
|
|
"auf die ersten 10 Millionen Nachkommastellen beschränkt.")
|
|
|
|
euler_suche = ("### Eulersche Zahl - Nachkommastellensuche\n"
|
|
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle auszugeben "
|
|
"und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von e "
|
|
"(2.71828182845904523.....) zu ermitteln. Aus Performance- und Speicherplatzgründen "
|
|
"ist die Suche auf die ersten 10 Millionen Nachkommastellen beschränkt.")
|
|
|
|
goldener_schnitt_suche = ("### phi(Goldener Schnitt) Nachkommastellensuche\n"
|
|
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle "
|
|
"auszugeben und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von "
|
|
"phi (1.618033988749894848204586...) zu ermitteln. Aus Performance- und Speicherplatzgründen "
|
|
"ist die Suche auf die ersten 10 Millionen Nachkommastellen beschränkt.")
|
|
|
|
anagramm_suche_de = ("### Anagrammsuche mit Wörterbuch DE\n"
|
|
"Diese Funktion benutzt eine deutsche Wörterbuchdatei vom Project "
|
|
"https://sourceforge.net/projects/germandict um zu überprüfen ob sich unter Verwendung __aller__ "
|
|
"eingegebenen Buchstaben Wörter bilden lassen, welche im Wörterbuch vorkommen.")
|
|
|
|
anagramm_suche_en = ("### Anagrammsuche mit Wörterbuch EN\n"
|
|
"Diese Funktion benutzt die englische Wörterliste en_US-large.txt vom Project "
|
|
"https://sourceforge.net/projects/wordlist um zu überprüfen ob sich unter Verwendung aller "
|
|
"eingegebenen Buchstaben Wörter bilden lassen, welche im Wörterbuch vorkommen. Dieses Wörterbuch "
|
|
"kennt übrigens auch viele Wörter mit Apostroph wie z.B. say's.")
|
|
|
|
wortsuche_de = ("### Wortsuche mit Wörterbuch DE\n"
|
|
"Wer kennt es nicht? Man sucht ein Wort mit einer bestimmten Anzahl an Buchstaben und weiß aber z.B. "
|
|
"nur den Anfangsbuchstaben und die letzten 3 Buchstaben. Hierbei soll diese Funktion helfen. "
|
|
"Unbekannte Buchstaben werden dabei einfach durch * ersetzt. Klein-/Großschreibung in der Eingabe "
|
|
"wird dabei ignoriert. \n"
|
|
"Beispiel: \n"
|
|
"Ge*ca**i** -> Geocaching \n"
|
|
"ge*ca**i** -> Geocaching \n"
|
|
"T*****dose -> Tupperdose, Tabaksdose \n"
|
|
"Diese Funktion nutzt dafür die deutsche Wörterbuchdatei vom Project "
|
|
"https://sourceforge.net/projects/germandict")
|
|
|
|
wortsuche_en = ("### Wortsuche mit Wörterbuch EN\n"
|
|
"Wer kennt es nicht? Man sucht ein Wort mit einer bestimmten Anzahl an Buchstaben und weiß aber z.B. "
|
|
"nur den Anfangsbuchstaben und die letzten 3 Buchstaben. Hierbei soll diese Funktion helfen. "
|
|
"Unbekannte Buchstaben werden dabei einfach durch * ersetzt. Klein-/Großschreibung in der Eingabe "
|
|
"wird dabei ignoriert. \n"
|
|
"Beispiel: \n"
|
|
"Ge*ca**i** -> geocaching \n"
|
|
"ge*ca**i** -> geocaching \n"
|
|
"say*s -> say's (Die Wortliste kennt viele Wörter mit Apostroph) \n"
|
|
"coordinat** -> coordinator, coordinates, coordinated \n"
|
|
"Diese Funktion nutz dafür die englische Wörterliste en_US-large.txt vom Project "
|
|
"https://sourceforge.net/projects/wordlist")
|
|
|
|
remorse_de = ("### RE-Morse DE\n"
|
|
"Es gibt ja so Leute, die finden es lustig einen Morsecode so aufzuschreiben, daß zwar Wort für Wort "
|
|
"getrennt wird, aber ansonsten einfach mal die Leerzeichen weggelassen werden. Bei genau solchen "
|
|
"fiesen Gemeinheiten hilft diese Funktion. Für diese Funktion wurde basierend auf der deutschen "
|
|
"Wörterbuchdatei vom Project https://sourceforge.net/projects/germandict eine "
|
|
"spezielle Wörterbuchdatei generiert, um eine beschleunigte Abfrage zu ermöglichen.")
|
|
|
|
remorse_en = ("### RE-Morse EN\n"
|
|
"Es gibt ja so Leute, die finden es lustig einen Morsecode so aufzuschreiben, daß zwar Wort für Wort "
|
|
"getrennt wird, aber ansonsten einfach mal die Leerzeichen weggelassen werden. Bei genau solchen "
|
|
"fiesen Gemeinheiten hilft diese Funktion. Mit Hilfe der englischen Wörterliste en_US-large.txt vom "
|
|
"Project https://sourceforge.net/projects/wordlist wird überprüft, für welches Wort der eingegebene "
|
|
"Morsecode stehen könnte.")
|
|
|
|
t9_de = ("### T9-DE\n"
|
|
"Diese Funktion benutzt die deutsche Wörterbuchdatei german.dic vom Project "
|
|
"https://sourceforge.net/projects/germandict ermittelt diese Funktion alle im Wörterbuch "
|
|
"enthaltenen Wörter die zu der eingegebenen T9-kodierten Ziffernfolge passen und gibt "
|
|
"diese aus. \n"
|
|
"Bsp. 56673462836 liefert das Wort Koordinaten \n"
|
|
"Für diese Funktion wurde basierend auf der deutschen Wörterbuchdatei vom Project "
|
|
"https://sourceforge.net/projects/germandict eine spezielle Wörterbuchdatei generiert, um eine beschleunigte "
|
|
"Abfrage zu ermöglichen.")
|
|
|
|
t9_en = ("### T9-EN\n"
|
|
"Mit Hilfe der englischen Wörterliste en_US-large.txt vom Project "
|
|
"https://sourceforge.net/projects/wordlist ermittelt diese Funktion alle im Wörterbuch "
|
|
"enthaltenen Wörter die zu der eingegebenen T9-kodierten Ziffernfolge passen und gibt diese aus. \n"
|
|
"Bsp. 26673462837 liefert das Wort coordinates")
|
|
|
|
vigenere = ("### Vigenere-Chiffre\n"
|
|
"Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! Die Vigenere-Chiffre baut auf dem Prinzip "
|
|
"der Cesar-Chiffre auf, wobei hier die Verschiebung jedes einzelnen Buchstaben durch die "
|
|
"Buchstabenwerte eines Schlüsselwortes definiert werden. Da der zu verschlüsselnde Text im "
|
|
"allgemeinen länger als das Schlüsselwort ist, wird das Schlüsselwort immer wieder wiederholt. "
|
|
"Ist der Schlüssel mindestens genauso lang wie der Klartext entspricht dies dann dem "
|
|
"One-Time-Pad-Chiffre. Der eingegebene Text wird hier mit dem eingegebenen Schlüsselwort kodiert und "
|
|
"dekodiert ausgegeben und zwar sowohl in der Variante, daß Sonderzeichen Schlüsselbuchstaben "
|
|
"verbrauchen als auch nicht.")
|
|
|
|
wolseley = ("### 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")
|
|
|
|
atbash = ("### 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|")
|
|
|
|
monoalphasubstitution = ("### 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, dass "
|
|
"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|")
|
|
|
|
autokey = ("### Autokey-Chiffre\n"
|
|
"Die Autokey-Chiffre arbeitet nach dem selben Prinzip wie Vignere-Chiffre mit dem Unterschied, dass "
|
|
"hier am Ende des Schlüsselwortes nicht wieder und wieder das Schlüsselwort angehängt wird, sondern "
|
|
"der Klartext an das Schlüsselwort angehangen wird. Der eingegebene Text wird hier mit dem "
|
|
"eingegebenen Schlüsselwort kodiert und dekodiert ausgegeben.")
|
|
|
|
polybios = ('Die 5x5 Polybios-Chiffre kodiert Buchstaben zu zweistelligen Zahlen dazu wird das Schlüsselalphabet '
|
|
'in ein 5x5-Quadrat eingetragen. Die Buchstaben werden dann sozusagen zu ihren entsprechenden '
|
|
'"Koordinaten" kodiert. Im unten gezeigten Quadrat wird so aus A 11, aus B 12, aus Q 41, usw. Da in '
|
|
'ein 5x5 Quadrat nur 25 Buchstaben passen wird typischer Weise J und I zusammengefasst, (alternativ '
|
|
'auch U und V), sollen auch Ziffern kodiert werden wird mit einem 6x6-Quadrat gearbeitet, bei '
|
|
'welchem dann für das komplette Alphabet und die Ziffern 0-9 Platz ist. \n'
|
|
'| |1|2|3|4|5|\n'
|
|
'|-|-|-|-|-|-|\n'
|
|
'|1|A|B|C|D|E|\n'
|
|
'|2|F|G|H|I|K|\n'
|
|
'|3|L|M|N|O|P|\n'
|
|
'|4|Q|R|S|T|U|\n'
|
|
'|5|V|W|X|Y|Z|\n\n'
|
|
'Kommt für die Chiffre ein Schlüsselwort zum Einsatz wird das Code-Quadrat so abgeändert das die '
|
|
'Buchstaben des Schlüsselwortes entsprechend ihres ersten Vorkommens Zeile für Zeile in das '
|
|
'Codequadrat eingetragen werden, der Rest wird mit den verbliebenen Buchstaben aufgefüllt. Zur '
|
|
'Information wird für jede Polybios-Variante auch noch einmal der verwendete Klartext und das '
|
|
'verwendete Passwort ausgegeben.')
|
|
polybios_encode = f"### Polybios-Chiffre kodieren\n{polybios}"
|
|
polybios_decode = f"### Polybios-Chiffre dekodieren\n{polybios}"""
|
|
|
|
klopfcode = ('Der Klopfcode ist im Prinzip eine Polybios Chiffre mit einem festen '
|
|
'Schlüsselquadrat bei welchem nicht I und J sondern C und K zusammengefasst werden. \n'
|
|
'siehe hier: \n'
|
|
'| |1|2|3|4|5|\n'
|
|
'|-|-|-|-|-|-|\n'
|
|
'|1|A|B|C|D|E|\n'
|
|
'|2|F|G|H|I|J|\n'
|
|
'|3|L|M|N|O|P|\n'
|
|
'|4|Q|R|S|T|U|\n'
|
|
'|5|V|W|X|Y|Z|')
|
|
klopfcode_encode = f"### Klopfcode kodieren\n{klopfcode}"
|
|
klopfcode_decode = f"### Klopfcode dekodieren\n{klopfcode}"
|
|
|
|
maptiles_kachelkoordinaten = ('### Maptiles / Kachelkoordinaten\n'
|
|
'Bei vielen Online-Kartendiensten wie Openstreetmap oder Google-Maps erfolgt die '
|
|
'Kartendarstellung über vorberechnete "Kachel"-Grafikdateien, welche ein '
|
|
'Adressierungssystem benötigen damit je nach Koordinate und Zoomstufe auch der richtige '
|
|
'Kartenausschnitt dargestellt wird und klar ist welche Kacheln daneben darzustellen '
|
|
'sind. \n'
|
|
'Solche Kacheln sind typischer Weise PNG-Grafiken mit 256x256 oder 512x512 Pixeln und je '
|
|
'nach Zoomstufe ist eine unterschiedliche Anzahl solcher Kacheln/Tiles notwendig um die '
|
|
'ganze Welt abzubilden. Da je Zoomstufe sich die Anzahl der benötigten Kacheln '
|
|
'vervierfacht und damit auch die Datenmenge werden in der Praxis keine Zoomlevel über '
|
|
'20 verwendet. \n'
|
|
'Um die einzelnen Kacheln beim tilemap-Server abzufragen braucht man die Zoomstufe, '
|
|
'einen X- und einen Y-Wert wobei dies alles ganzzahlige Werte sind. Abgerufen vom '
|
|
'Tilemap-Server werden die Kacheln dann nach dem Muster: '
|
|
'`http://servername/Zoom/X/Y.png` Den Fernsehturm mit Zoomstufe 18 findet man z.B. bei '
|
|
'Openstreetmap hier: https://tile.openstreetmap.org/18/140836/85970.png \n'
|
|
'Die Funktion arbeitet hier auf die Art und Weise, dass man 2 durch ein Freizeichen '
|
|
'getrennte Zahlen eingibt. Handelt es sich bei den angegebenen Zahlen um "Kommazahlen" '
|
|
'welche allerdings mit Punkt anzugeben sind (Bsp: 52.520803 13.4088653 ) geht die '
|
|
'Funktion davon aus, daß es sich um Koordinaten in Dezimalgrad handelt und sofern es '
|
|
'gültige Koordinaten sind erfolgt eine Ausgabe der X und Y Werte für die Zoomstufen und '
|
|
'1-25. (Positive Zahlen stehen für Nord und Ost, negative für Süd und West) Handelt es '
|
|
'sich bei den beiden Zahlen um Ganzzahlen wird davon ausgegangen, dass es sich um X und '
|
|
'Y Werte handelt und es werden für alle Zoomstufen von 1-25 Koordinaten in '
|
|
'Dezimalminuten und Dezimalgrad ausgegeben, sofern dies sinnvolle Koordinaten ergibt '
|
|
'und sie werden auf einer Karte angezeigt.')
|
|
|
|
quadtree_koordinaten = ("### Quadtree-/Quadkeykoordinaten\n"
|
|
"Diese Koordinatenkodierung spielt in der alltäglichen Praxis eigentlich kaum noch ein Rolle, "
|
|
"außer scheinbar bei bing-maps und beim Geocaching. Sie dient ähnlich wie das Maptiles-System "
|
|
"dazu Grafikdateien für unterschiedliche Zoomstufen einer Karte zu adressieren. Die Länge der "
|
|
"Zahl entspricht hier zugleich auch dem Detailgrad bzw. der Zoomstufe. Es finden nur die "
|
|
"Zahlen 0,1,2 und 3 Verwendung, wobei die 0 den Nordwestlichen Quadranten, 1 den "
|
|
"Nordöstlichen, 2 SW und 3 SO. \nEin kleines Beispiel: 230 würde bedeuten es geht im "
|
|
"südwestlichen Quadranten (2) um den südöstlichen Quadranten(3) und in diesem wiederum um den "
|
|
"nordwestlichen Quadranten. Je länger also diese Zahlenreihe aus 0,1,2 und 3 wird um so "
|
|
"genauer wird ein bestimmter Ort angegeben. \nWeitere Infos gibt es unter folgendem Link zu "
|
|
"finden: https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system \n"
|
|
"Die Funktion ermittelt aus einer Quadtreekoordinate die Maptileskoordinaten und die "
|
|
"WGS84-Koordinaten und zeigt diese auf einer Karte an.")
|
|
|
|
chronogramm = ('### Chronogramm/ römische Ziffern zählen\n'
|
|
'Ein Chronogramm (oder Eteostichon) ist ein Satzteil, ein Satz, ein Sinnspruch oder eine Inschrift, '
|
|
'meist ein Vers in lateinischer Sprache, in dem diejenigen Buchstaben, die auch als römische '
|
|
'Zahlzeichen gelesen werden können (I, V, X, L, C, D, M), in ihrer Summe die Jahreszahl des '
|
|
'Ereignisses angeben, auf das sich der Text bezieht. Entscheidend ist allein die Summe der '
|
|
'Zahlenwertbuchstaben, die sonst bei römischen Zahlen übliche Subtraktion kleinerer Zahlenwerte von '
|
|
'folgenden größeren erfolgt nicht. Die Zahlbuchstaben sind meist hervorgehoben, etwa durch '
|
|
'Großschreibung oder Verdickung der Buchstaben bzw. durch farbliche Abhebung mittels Rötung oder '
|
|
'Vergoldung. \n'
|
|
'Eine Besonderheit bilden Krypto(chrono)gramme, bei denen die Zahlbuchstaben nicht gekennzeichnet '
|
|
'sind und "verborgen" bleiben. Bei der einfachen Analyse werden hier die Buchstaben I(1), V(5), '
|
|
'X(10), L(50), C(100), D(500), M(1000) berücksichtigt und addiert, bei der erweiterten Analyse wird '
|
|
'zunächst einmal berücksichtigt, daß im Lateinischen Alphabet der Buchstabe J als I und der '
|
|
'Buchstabe U als V geschrieben wird. Außerdem erfolgt wird in der extremen Variante auch noch '
|
|
'W=10(V+V) und Y=2(I+I) berücksichtigt. \n'
|
|
'Des Weiteren wird auch für jeden relevanten Buchstaben einzeln noch einmal die Anzahl und Summe'
|
|
' angezeigt. Eine Unterscheidung zwischen Klein- und Großschreibung findet nicht statt.')
|
|
|
|
zahlen_roemisch_arabisch_umwandeln = ("### Römische in Arabische Zahlen umwandeln und umgekehrt\n"
|
|
"Es werden römische Zahlen in arabische umgewandelt und umgekehrt, die Funktion "
|
|
"arbeitet dabei bei der Umwandlung von arabisch zu römisch mit Werten bis "
|
|
"maximal 500000. Es werden folgende Zeichen verwendet: I=1, V=5, X=10, L=50, "
|
|
"C=100, D=500, M=1000, \u2181=5000, \u2182=10000, \u2187=50000, \u2188=100000 \n"
|
|
"Etwas Vorsicht sollte bei einer Umwandlung von römischen in arabische Zahlen "
|
|
"geboten sein, wenn mit untypischen Schreibweisen gearbeitet wird bei welchen "
|
|
"mehr als ein Zeichen von dem nachfolgenden Zeichen abgezogen werden soll. Die "
|
|
"eigentlich inkorrekte Schreibweise IIX für die Zahl 8 wird hier die Zahl 10 als "
|
|
"Ergebnis haben (+1-1+10), dafür wird aber allerdings die ebenfalls falsche "
|
|
"Schreibweise IM genauso als 999 wie die korrekte Schreibweise CMXCIX erkannt.")
|
|
|
|
url_decode = ("### URL-decode\n"
|
|
"Nachdem Groundspeak nun inzwischen sämtliche Bilddateien über einen Proxy umleitet bevor sie im "
|
|
"Listing erscheinen wird es manchmal schwer die ursprüngliche URL und/oder den Dateinamen des "
|
|
"Bildes noch lesen zu können. Die URL hat dort nun jeweils folgendes Muster: "
|
|
"`https://imgproxy.geocaching.com/......?url=.....` wobei nach dem `?url=` dann die ursprüngliche "
|
|
"Bild-URL folgt, allerdings wird dabei dann aus `http://` folgendes `http%3A%2F%2F` und um genau "
|
|
"dieses wieder normal lesbar zu machen dient diese Funktion")
|
|
|
|
reversewig = ('### Reverse Wherigo zu Koordinaten\n'
|
|
'Mit dem Reverse Wherigo hat -Waldmeister- eigentlich eine coole Sache erfunden. Man hat anfangs '
|
|
'keine Koordinaten sondern nur 3 Zahlen, welche man nach Start des Wherigo-Cartridges eingibt und '
|
|
'dann erfährt man wie weit der Cache entfernt ist. Nun kann man immer wieder von unterschiedlichen '
|
|
'Positionen aus diese Entfernungsfragen durchführen und sich damit dem Cache nähern. Je weniger '
|
|
'Abfragen man braucht umso besser. Leider gibt es inzwischen genügend Tools die genau wie diese '
|
|
'Funktion hier aus den 3 Zahlen direkt die Finalkoordinaten ermitteln können. \n'
|
|
' Leider??? Ja leider denn das führt auch dazu, das es inzwischen so extrem viele dieser '
|
|
'Reverse-Wherigos gibt wo sich die Owner anscheinend auch denken "Die spielt doch sowieso keiner '
|
|
'mehr normal..." anders kann ich mir ganze Trails mit Reverse-Wherigos nicht erklären. Um die '
|
|
'Funktion zu nutzen braucht man nur die 3 Zahlen getrennt durch ein entsprechendes Trennzeichen: '
|
|
'| , _ / ; , oder Leerzeichen eingeben und auf den Knopp klicken und bekommt Koordinaten und eine '
|
|
'ungefähre Vorschau auf einer Karte.')
|
|
|
|
base64_ascii = ('### Base64 <-> ASCII\n'
|
|
'Base64 ist ein Kodierungsverfahren, welches dazu verwendet wird um beliebige Binärdaten nur Hilfe '
|
|
'einer Zeichenkette aus A-Z, a-z, 0-9, +, / sowie am Ende = übertragen zu können. Ein Einsatzzweck '
|
|
'dafür ist z.B. wenn bei EMails Dateianhänge verwendet werden, dort werden nahezu alle Dateiformate '
|
|
'base64-kodiert übertragen. Auch bei dem einem oder anderen Mystery sind mir solche kodierten '
|
|
'Zeichenketten schon begegnet. Wenn am Ende einer Zeichenkette ein oder zwei "="-Zeichen stehen ist '
|
|
'die Wahrscheinlichkeit recht groß, das hier base64 verwendet wurde. Das "="-Zeichen dient hier '
|
|
'nämlich als "Lückenfüller" am Ende. Die Funktion hier versucht zunächst eine Dekodierung '
|
|
'Base64->ASCII gelingt dies nicht, erscheint ein Hinweis und der eingegeben Text wird dann '
|
|
'Base64-kodiert ausgegeben.')
|
|
|
|
jaegerzaun = ("Jägerzaun (auch Railfence oder ZigZag-Chiffre genannt) Bei dieser Chiffre wird kodiert, indem man "
|
|
"einen Text im Zickzackmuster in ein Feld aus z.B. 3 Zeilen und so vielen Spalten wie der Text lang "
|
|
"ist schreibt. Man beginnt in Spalte 1 - Zeile 1, dann geht es in Spalte 2 - Zeile 1 weiter danach "
|
|
"Spalte 3 - Zeile 3, dann Spalte 4 - Zeile 2, Spalte 5 - Zeile 1 usw. Danach werden die Buchstaben "
|
|
"einfach Zeile für Zeile hintereinander geschrieben. Unterschiedliche Varianten entstehen einfach "
|
|
"dadurch, dass man mit unterschiedlich vielen Zeilen arbeitet welche im Schlüsselfeld anzugeben "
|
|
"ist. \n"
|
|
"Die Funktion erzeugt hierbei einmal eine Ausgabe bei welcher auch Leerzeichen mitgeschrieben werden "
|
|
"und eine Ausgabe wo zuvor die Leerzeichen entfernt werden.")
|
|
jaegerzaun_encrypt = f"### encrypt Jägerzaun\n{jaegerzaun}"
|
|
jaegerzaun_decrypt = (f"### decrypt Jägerzaun\n{jaegerzaun} \n"
|
|
f"Wird im Schlüsselfeld keine Zahl angegeben erfolgt automatisch die Dekodierung für alle "
|
|
f"Zeilenanzahlen von 2-12.")
|
|
|
|
adfgx = ('Die ADFGX-Chiffre arbeitet mit zwei Passwörtern, wobei jedes für je einen Kodierungsschritt '
|
|
'verwendet wird. Das erste wird benutzt um eine Variation der Polybios-Kodierung mit einem 5x5 '
|
|
'Quadrat und J=I durchzuführen bei welcher die Zahlen 1-5 durch die Buchstaben ADFGX ersetzt '
|
|
'werden. \n'
|
|
'Mit dem Text "Ein Beispiel",dem Passwort "PASSWORT" und einem mit A->Z aufgefülltem Schlüsselquadrat: \n'
|
|
'| |A|D|F|G|X|\n'
|
|
'|-|-|-|-|-|-|\n'
|
|
'|A|P|A|S|W|O|\n'
|
|
'|D|R|T|B|C|D|\n'
|
|
'|F|E|F|G|H|I|\n'
|
|
'|G|K|L|M|N|Q|\n'
|
|
'|X|U|V|X|Y|Z| \n \n'
|
|
'... ergibt der erste Schritt z.B. die Zeichenfolge: "FA FX GG DF FA FX AF AA FX FA GD". '
|
|
'Nun kommt das zweite Passwort zum Einsatz als Beispiel hier:"Tester". Zunächst einmal wird die '
|
|
'alphabetische Reihenfolge des Passworts "Tester" benötigt -> 5 1 4 6 2 3 \n'
|
|
'diese Zahlenreihe wird nun in die erste Zeile geschrieben und das Ergebnis aus Schritt 1 zeilenweise '
|
|
'darunter: \n'
|
|
'|5|1|4|6|2|3|\n'
|
|
'|-|-|-|-|-|-|\n'
|
|
'|F|A|F|X|G|G|\n'
|
|
'|D|F|F|A|F|X|\n'
|
|
'|A|F|A|A|F|X|\n'
|
|
'|F|A|G|D| | | \n \n'
|
|
'... nun eine Sortierung der Spalten... \n'
|
|
'|1|2|3|4|5|6|\n'
|
|
'|-|-|-|-|-|-|\n'
|
|
'|A|G|G|F|F|X|\n'
|
|
'|F|F|X|F|D|A|\n'
|
|
'|F|F|X|A|A|A|\n'
|
|
'|A| | |G|F|D| \n \n'
|
|
'... dies nun spaltenweise von oben nach unten ausgelesen und hintereinander geschrieben ergibt nun'
|
|
'den kodierten Text. Typischer Weise erfolgt für eine bessere Lesbarkeit eine Gruppierung in '
|
|
'5er-Blöcken: "AFFAG FFGXX FFAGF DAFXA AD" \n'
|
|
' \n'
|
|
'Ausgegeben werden zwei Varianten, welche sich nur dadurch unterscheiden wie das Schlüsselquadrat im '
|
|
'ersten Schritt aufgefüllt wird. Entweder in alphabetischer Reihenfolge A->Z oder umgekehrt Z->A.')
|
|
adfgx_kodieren = f"### HILFE: ADFGX kodieren\n{adfgx}"
|
|
adfgx_dekodieren = f"### HILFE: ADFGX dekodieren\n{adfgx}"
|
|
adfgvx = (f'Die ADFGVX-Chiffre erweitert das 5x5-Schlüsselquadrat der ADFGX-Chiffre ersten Kodierungsschritt auf 6x6 '
|
|
f'so, dass das komplette Alphabet und die Zahlen 0-9 verwendet werden können. \n'
|
|
f'Alles andere funktioniert wie bei ... \n \n__ADFGX:__ \n{adfgx}')
|
|
adfgvx_kodieren = f"### HILFE: ADFGVX kodieren\n{adfgvx}"
|
|
adfgvx_dekodieren = f"### HILFE: ADFGVX dekodieren\n{adfgvx}"
|
|
|
|
brainfuck_interpreter = ("### Brainfuck-Interpreter\n"
|
|
"Brainfuck gehört zu den sogenannten esoterischen Programmiersprachen. \n"
|
|
"Der Programmcode setzt sich hier aus den 8 Zeichen ><+-.,[]') zusammen. Diese Funktion "
|
|
"führt einen derartigen Programmcode aus, und gibt das Ergebnis aus, welches bei Geocaches "
|
|
"meist eine kurze Nachricht oder die Koordinaten sind. Für eine umgekehrte Umwandlung von "
|
|
"Text in Brainfuckcode gibt es im Internet genügend Möglichkeiten zu finden. \n"
|
|
"Folgender Code wäre z.B. _Hello World!_ in Brainfuck: \n"
|
|
"`++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++."
|
|
"------.--------.>+.>.`")
|
|
|
|
ook_interpreter = ("### Ook-Interpreter\n"
|
|
"Ook ist eine Abwandlung von Brainfuck wobei die 8 Zeichen von Brainfuck hier durch eine "
|
|
"Kombination von je zwei der folgenden 3 Satzzeichen .!? ersetzt werden. Dabei wird dann je das "
|
|
"Wort Ook vor die Satzzeichen geschrieben. z.B.: Ook! Ook? Ook. Ook! Da Ook auch durch andere "
|
|
"Wörter ersetzt oder auch ganz ohne Wörter (ShortOok) auftaucht ignoriert diese Funktion alle "
|
|
"anderen Zeichen außer .!? bevor versucht wird den Code auszuführen.")
|
|
|
|
rlou_to_graph = ("### RLOU/RLUD -> Graph\n"
|
|
"Im Grunde genommen ist das hier eigentlich keine Kodierung sondern stellt einfach ein Malanleitung "
|
|
"dar. Wobei in der deutschen Version halt R=rechts, L=links, O=oben und U= unten bzw. in der "
|
|
"englischen Variante halt L=left, R=right, U=up, D=down ist. \n"
|
|
"Die Funktion hier versucht das ganz halt zu malen und als Grafik auszugeben, wobei versucht wird "
|
|
"automatisch zu erkennen ob die deutsche oder englische Variante zum Einsatz kommt. \n"
|
|
"Zum ausprobieren könnt ihr ja mal `ddurduu ddurduulr ddr rluu ddruul` probieren.") |