0

授業では暗号について学んでいます。暗号化/復号化プログラムを作成する必要があります。暗号化はかなり簡単だと思いましたが、復号化は本当に混乱しています。レールの長さが異なる場合が多いため、レールを分割する方法に頭を悩ませることはできません。メッセージの長さには 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)
4

2 に答える 2