Простая расшифровка ограждения рельсов - PullRequest
0 голосов
/ 18 июня 2020

Мне было поручено создать шифрование, используя простую технику. Я изо всех сил пытаюсь создать вторую половину, которая расшифрует сообщение.

phrase = 'It is a period of civil war'
odd = ''
even = ''

for i,ch in enumerate(phrase):
    if i % 2 == 0:
        even += ch
    else:
        odd += ch

ciphertext = even + odd

1 Ответ

1 голос
/ 18 июня 2020

Прежде чем я перейду к решению, всегда убедитесь, что вы высказываете свои мысли о трудности, с которой сталкиваетесь, и точно указывайте, где у вас возникла проблема.
В настоящее время, исходя из вашего кода, кажется, что ваш ключ для шифрования ограждения - 2. Обязательно укажите это в вашем коде или описании.

В любом случае, если вы проанализируете зашифрованный текст, мы сможем восстановить исходный текст, сначала разделив зашифрованный текст на две части, а затем добавив соответствующие символы первой части к символам второй части. Итак, в этом примере I sapro fcvlwrti eido ii a - это зашифрованный текст. Разделите его на две равные (или почти равные) части, I sapro fcvlwr & ti eido ii a Теперь просто go при добавлении первого символа из первой половины и второго символа из второй половины. Вам просто нужно обработать случай, когда зашифрованный текст нечетный или четный.

def decipher(ciphertex):
    originalText = ''
    size = len(ciphertext)

    for i in range((size)//2):
        originalText  += ciphertext[i] + ciphertext[size//2 + i + (size%2)]

    if(size%2==1):
        originalText += ciphertext[size//2]

    return originalText
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...