Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # функция занимается раскодировкой одной буквы (возвращает букву которая соответствует отправленной с шагом step)
- def decrypt_letter(letter, step):
- if letter.isalpha(): # если буква явялется буквой а не пробелом
- number = ord(letter) - step % 26 # отнимаем от кода буквы шаг (поделенный с остатком на 26)
- if number < 97: # если получился код < 97, то:
- number += 26 # прибавляем 26 что бы перейти в конец алфавита (цикличный сдвиг)
- return chr(number) # возвращаем букву соответсвующую полученному коду символа
- return letter # если это была не буква, то возвращаем символ который нам отправили
- # функция шифрует одну букву сдвигая её на step шагов, работает аналогично предыдущей функции
- def encrypt_letter(letter, step):
- if letter.isalpha():
- number = ord(letter) + step % 26
- if number > 122 or 90 < number < 97:
- number -= 26
- return chr(number)
- return letter
- # занимается расшифровкой целой строки (по факту вызывает функцию расшифровки для каждого символа в строке)
- def encrypt(msg, step):
- newMsg = ""
- for i in range(0, len(msg)):
- newMsg += encrypt_letter(msg[i], step)
- return newMsg
- # занимается зашифровкой целой строки (по факту вызывает функцию зашифровки для каждого символа в строке)
- def decrypt(msg, step):
- newMsg = ""
- for i in range(0, len(msg)):
- newMsg += decrypt_letter(msg[i], step)
- return newMsg
- # функция для удобного ввода шифруемого сообщения, говорит пользователю что нужно ввести
- def func_encrypt():
- step = int(input("Input step: "))
- s = input("Enter message: ")
- print(encrypt(s, step))
- # функция для удобного ввода расшифруемого сообщения, говорит пользователю что нужно ввести
- def func_decrypt():
- s = input("Enter message: ")
- step = int(input("Input crypt step: "))
- print(decrypt(s, step))
- # вызываем по очереди зашифровку и расшифровку
- func_encrypt()
- func_decrypt()
Add Comment
Please, Sign In to add comment