70 lines
2.3 KiB
Python
70 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf8 -*-
|
|
|
|
# PW1 WIKIPEDIA
|
|
# PW2 BEOBACHTUNGSLISTE
|
|
# ausgabe_az09 FAFGA DDAFD DVAFA DGGXA VAGDG GDGDF ADFAF FAAVG ADAVG XAAVF FAVDA GAGGG GVVAD GFADF DAFDD DFDGA GAFGV DGAVF FDDGG DGXFV DDDVA DFVFF DGGGV FXDVG GGGFV D
|
|
# ausgabe_90za VAVGA DDAVD XVAVA DGVDA VAGDG GXGDV AXVAV VAAVG AXAFG DAAFV FAVXA GAGGG GFFAD GVAXV XAVXX XVXGA GAVGV XGAVV VDXGG DGDVV XXXVA DVVVV XGGGF VDXVG GGGVF X
|
|
|
|
|
|
# text="FAFGA DDAFD DVAFA DGGXA VAGDG GDGDF ADFAF FAAVG ADAVG XAAVF FAVDA GAGGG GVVAD GFADF DAFDD DFDGA GAFGV DGAVF FDDGG DGXFV DDDVA DFVFF DGGGV FXDVG GGGFV D"
|
|
text = "VAVGA DDAVD XVAVA DGVDA VAGDG GXGDV AXVAV VAAVG AXAFG DAAFV FAVXA GAGGG GFFAD GVAXV XAVXX XVXGA GAVGV XGAVV VDXGG DGDVV XXXVA DVVVV XGGGF VDXVG GGGVF X"
|
|
PW = "wikipedia, beobachtungsliste"
|
|
# PW auf Komma prüfen!!!
|
|
|
|
RN = ["AA", "AD", "AF", "AG", "AV", "AX", "DA", "DD", "DF", "DG", "DV", "DX", "FA", "FD", "FF", "FG", "FV", "FX", "GA",
|
|
"GD", "GF", "GG", "GV", "GX", "VA", "VD", "VF", "VG", "VV", "VX", "XA", "XD", "XF", "XG", "XV", "XX"]
|
|
alpha_az09 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
alpha_90za = "9876543210ZYXWVUTSRQPONMLKJIHGFEDCBA"
|
|
text = text.upper()
|
|
PW = PW.upper()
|
|
PW = PW.split(",")
|
|
PW1az09 = ""
|
|
for b in PW[0]+alpha_az09:
|
|
if b in alpha_az09 and b not in PW1az09:
|
|
PW1az09 += b
|
|
PW190za = ""
|
|
for b in PW[0]+alpha_90za:
|
|
if b in alpha_90za and b not in PW190za:
|
|
PW190za += b
|
|
PW2 = ""
|
|
for i in PW[1]:
|
|
if i in alpha_az09:
|
|
PW2 += i
|
|
ctext = ""
|
|
for i in text:
|
|
if i in alpha_az09:
|
|
ctext += i
|
|
WBaz09 = {}
|
|
for i in range(36):
|
|
WBaz09[RN[i]] = PW1az09[i]
|
|
WB90za = {}
|
|
for i in range(36):
|
|
WB90za[RN[i]] = PW190za[i]
|
|
ret = ['_']*len(ctext)
|
|
lt, lp = len(ctext), len(PW2)
|
|
t1 = [(PW2[i], i) for i in range(len(PW2))]
|
|
ind = [q[1] for q in sorted(t1)]
|
|
upto = 0
|
|
for i in range(len(PW2)):
|
|
tic = int(lt / lp)
|
|
if ind[i] < lt % lp:
|
|
tic += 1
|
|
ret[ind[i]::lp] = ctext[upto:upto+tic]
|
|
upto += tic
|
|
ctext = ''.join(ret)
|
|
klartext_az09 = ""
|
|
for i in range(0, len(ctext), 2):
|
|
bi = ctext[i:i+2]
|
|
if bi in WBaz09:
|
|
klartext_az09 += WBaz09[bi]
|
|
klartext_90za = ""
|
|
for i in range(0, len(ctext), 2):
|
|
bi = ctext[i:i+2]
|
|
if bi in WB90za:
|
|
klartext_90za += WB90za[bi]
|
|
print("PW1", PW[0])
|
|
print("PW2", PW2)
|
|
print("klartext_az", klartext_az09)
|
|
print("klartext_za", klartext_90za)
|