Files
Mysteryhelfer/EinzelfunktionenExperimentierbereich/rot123/rot123.py

59 lines
1.5 KiB
Python

#!/usr/bin/python3
# -*- coding: utf8 -*-
BW = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13,
'N': 14,
'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}
UBW = {v: k for k, v in BW.items()}
text = "12 34567890abc defghijklmnopqr, stuvwxyz5ABCDEFGHI JKLMNOPQRSTUVWXYZ"
# 2468024680LOORTVXZBDFHJLNPRTVXZBDFHJLNPRTVXZBDFHJLNPRTVXZBDFHJ
encoded_text = ""
vz = 1 # verschiebezähler
for i in text:
if i.upper() not in BW:
try:
az = int(i)
except:
encoded_text += i
else:
ba = (az + vz) % 10
encoded_text += str(ba)
vz += 1
else:
b1 = BW[i.upper()]
ba = (b1 + vz) % 26
if ba == 0:
ba = 26
if i == i.upper():
encoded_text += UBW[ba]
else:
encoded_text += UBW[ba].lower()
vz += 1
text = encoded_text # zum überprüfen
decoded_text = ""
vz = 1 # verschiebezähler
for i in text:
if i.upper() not in BW:
try:
az = int(i)
except:
decoded_text += i
else:
ba = (az - vz) % 10
decoded_text += str(ba)
vz += 1
else:
b1 = BW[i.upper()]
ba = (b1 - vz) % 26
if ba == 0:
ba = 26
if i == i.upper():
decoded_text += UBW[ba]
else:
decoded_text += UBW[ba].lower()
vz += 1
print(encoded_text)
print(decoded_text)