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