在课堂上,我们正在学习加密。我必须编写一个加密/解密程序。虽然我发现加密相当容易,但解密让我很困惑。我无法将我的头围绕在我应该如何分开铁轨上,因为有很多情况下他们会有不同的长度。使用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