授業では暗号について学んでいます。暗号化/復号化プログラムを作成する必要があります。暗号化はかなり簡単だと思いましたが、復号化は本当に混乱しています。レールの長さが異なる場合が多いため、レールを分割する方法に頭を悩ませることはできません。メッセージの長さには 2 つのバリエーションしかないため、これは 2 つのレールで簡単に説明できます。2 レール復号化用にコードを変更しようとしていますが、うまくいきません。誰かが私を正しい方向に向けることができますか? 興味があれば、ここに私の暗号があります。
def threeRailEncrypt(plaintext):
ciphertext=""
rail1=""
rail2=""
rail3=""
for i in range(len(plaintext)):
if i%3 == 0:
rail1=rail1+plaintext[i]
elif i%3 == 1:
rail2=rail2+plaintext[i]
else:
rail3=rail3+plaintext[i]
ciphertext=rail1+rail2+rail3
return(ciphertext)
これが私がこれまでに持っているものです-(まだ動作しません)
def threeRailDecrypt(msg):
if len(msg)%3==0:
third=len(msg)//3
rail1=msg[:third]
rail2=msg[third:third*2]
rail3=msg[third:]
dm=""
for i in range(third):
dm=dm+rail1[i]
dm=dm+rail2[i]
dm=dm+rail3[i]
return(dm)]
これもダメ!
def threeRailDecrypt(msg):
railLen=len(msg)//3
dm=""
for col in range(railLen):
for rail in range(3):
nextLetter=(col+rail*railLen)
dm=dm+msg[nextLetter]
return(dm)