Код Caesar Cipher в Python: преобразовать в Unicode + значение сдвига, затем вернуть обратно как зашифрованное сообщение - PullRequest
0 голосов
/ 10 июля 2020

Мне нужно попросить пользователя ввести 2 значения:

  1. введите сообщение
  2. введите значение сдвига

Затем возьмите их сообщение и конвертируйте его в Юникод с помощью функции ord (). Затем добавьте их значение сдвига, чтобы получить новое значение Unicode. А затем конвертируйте это новое значение обратно в зашифрованное сообщение с помощью функции chr ().

Я изо всех сил пытаюсь начать с этого, а функция ord () принимает только одну букву за раз, поэтому я не знаю, как использовать эту функцию во всем предложении пользователя.

Пожалуйста, помогите, так как это то, что у меня есть. Большое вам спасибо!

text = (input('Type message: '))
shift_value = (input('Type shift value: '))


def ceasar(text, shift_value):
    for i in text():
        print(ord(i))
        return

1 Ответ

1 голос
/ 10 июля 2020
N = 0x10FFFF
def ceasar_encrypt(text, k):
    return ''.join(chr((ord(ch) + k) % N) for ch in text)

def ceasar_decrypt(ciphertext, k):
    return ''.join(chr((ord(ch) - k) % N) for ch in ciphertext)


text = input('Type a message: ')
k = int(input('Type shift value: '))

ciphertext = ceasar_encrypt(text, k)
print(ciphertext)
plaintext = ceasar_decrypt(ciphertext, k)
print(plaintext)
...