在課堂上,我們正在學習加密。我必須編寫一個加密/解密程序。雖然我發現加密相當容易,但解密讓我很困惑。我無法將我的頭圍繞在我應該如何分開鐵軌上,因爲有很多情況下他們會有不同的長度。使用2個導軌可以輕鬆解決這個問題,因爲消息長度只有2個變量。我試圖修改我的代碼2導軌解密,但它只是沒有工作。任何人都可以將我指向正確的方向嗎?如果你好奇,這是我的加密。解密3導軌加密
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)
[三條鐵路解密]的可能重複(http://stackoverflow.com/questions/19148729/three-rail-decrypt) – ixe013