59 lines
1.5 KiB
Python
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)
|