#!/usr/bin/env python3 # -*- coding: utf8 -*- # ausgabe_za FFFGA DDDFD DXAXA DAGDA XAXDX XFXDF DFGAG FAAXG AGAAG DAAAF FAXFA AAAGX XAAAD GGAFG FAXDG DXFAA XAGXX FXAXF XDDXG DGDFX FGFXA DFXFX FAXGA GDFXG XXXFA D # ausgabe_za GXGGA DDDGD XXAFA DDFAA XAFDF FXFDG DXGAG GAAXF AGADF AAADG FAXXA DADFF FDDAD FGAXG XAFXG XFXDA FAGFX XFAXG FDXFF DFAGX XGXXA DGXGF XDFFD GAXXF FFFGD X # text="Munitionierung beschleunigen Punkt Soweit nicht eingesehen auch bei Tag" # PW="wikipedia, beobachtungsliste" text = "GXGGA DDDGD XXAFA DDFAA XAFDF FXFDG DXGAG GAAXF AGADF AAADG FAXXA DADFF FDDAD FGAXG XAFXG XFXDA FAGFX XFAXG FDXFF DFAGX XGXXA DGXGF XDFFD GAXXF FFFGD X" PW = "wikipedia, beobachtungsliste" # PW auf Komma prüfen!!! RN = ["AA", "AD", "AF", "AG", "AX", "DA", "DD", "DF", "DG", "DX", "FA", "FD", "FF", "FG", "FX", "GA", "GD", "GF", "GG", "GX", "XA", "XD", "XF", "XG", "XX"] alpha_az = "ABCDEFGHIKLMNOPQRSTUVWXYZ" # j wird durch i ersetzt alpha_za = "ZYXWVUTSRQPONMLKIHGFEDCBA" text = text.upper() textij = text.replace("J", "I") PW = PW.upper() PW = PW.replace("J", "I") PW = PW.split(",") PW1az = "" for b in PW[0] + alpha_az: if b in alpha_az and b not in PW1az: PW1az += b PW1za = "" for b in PW[0] + alpha_za: if b in alpha_za and b not in PW1za: PW1za += b PW2 = "" for i in PW[1]: if i in alpha_az: PW2 += i ctext = "" for i in textij: if i in alpha_az: ctext += i WBaz = {} for i in range(25): WBaz[RN[i]] = PW1az[i] WBza = {} for i in range(25): WBza[RN[i]] = PW1za[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_az = "" for i in range(0, len(ctext), 2): bi = ctext[i:i + 2] if bi in WBaz: klartext_az += WBaz[bi] klartext_za = "" for i in range(0, len(ctext), 2): bi = ctext[i:i + 2] if bi in WBza: klartext_za += WBza[bi] print("PW1", PW[0]) print("PW2", PW2) print("klartext_az", klartext_az) print("klartext_za", klartext_za)