Files
Mysteryhelfer/EinzelfunktionenExperimentierbereich/Wosley/woseley-chiffre.py

69 lines
1.7 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf8 -*-
text = "Beispielklartext abcdefghijklmnopqrstuvwxyz"
# PW="Apfelstrudel"
PW = "teebaum"
# Chiffrat: IWBQYBWVDVZNOWFO ZIHKWXGCBBDVURTYSNQOMLEFPA
abc = "ABCDEFGHIKLMNOPQRSTUVWXYZ" # j wird als i chiffriert
text = text.upper()
PW = PW.upper()
if "J" in text:
text = text.replace("J", "I")
if "J" in PW:
PW = PW.replace("J", "I")
calpha = ""
for b in PW:
if b not in calpha:
calpha += b
for b in abc:
if b not in calpha:
calpha += b
CABC = {calpha[12]: calpha[12]}
c1 = calpha[:12]
c2 = calpha[13:]
c2 = c2[::-1]
for i in range(12):
CABC[c1[i]] = c2[i]
UCABC = {v: k for k, v in CABC.items()}
CABC.update(UCABC)
print(calpha)
atxt = ""
for b in text:
if b in CABC:
atxt += CABC[b]
else:
atxt += b
print(atxt)
hilfe = """
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
"""