Rail Fence Cipher - auf der Suche nach einer besseren Lösung
Habe ich codiert Rail Fence Cipher in Python. Ich Frage mich, ob es könnte eine bessere Lösung sein.
Für diejenigen, die nicht wissen, was rail fence cipher ist, es ist im Grunde eine Methode zu schreiben, im Klartext in einer Weise, die es schafft lineares Muster in eine Spirale Weg.
Beispiel - wenn "FOOBARBAZ" rail-eingezäunt mit Schlüssel 3.
F . . . A . . . Z . . .
. O . B . R . A . Q . X
. . O . . . B . . . U .
Lesen der oben genannten Spirale line-by-line, die cipher text wird "FAZOBRAQXOBU". Lesen Sie mehr unter - Rail-Zaun - Wikipedia.
def cipher(s, key, graph=False) :
down=True
raw_out=[]
out=''
i=0
for x in range(key) :
raw_out.append({})
for pos in range(len(s)) :
raw_out[i][pos]=s[pos]
if i==key-1 :
down=False
if i==0 :
down=True
if down :
i=i+1
else :
i=i-1
for p in raw_out :
for q in p :
out+=p[q]
if graph :
return raw_out
return out
def decipher(s, key) :
map_list=cipher(s, key, True) #CREATING JUST FOR MAPPING - WHICHth CHARACTER OF THE STRING - IS WHICHth CHARACTER OF THE CIPHER
new={}
out=''
s_counter=0
for x in map_list :
for y in x :
new[y]=s[s_counter]
s_counter+=1
for p in new :
out+=new[p]
return map_list
Ich Frage mich, ob es einen besseren Weg, dies zu tun, da mein Verfahren ist sehr teuer, es verwendet einige Wörterbücher.
Code in einer beliebigen Sprache wird begrüßt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur für das heck der es...
Finden Sie eine Erklärung bei mein blog.