Загрузка...

Программа для шифрования текста , удаляет проблемы

Тема в разделе Python создана пользователем TheRikka 4 май 2020. 548 просмотров

  1. TheRikka
    TheRikka Автор темы 4 май 2020 Смотрю хентай , ебу шлюх , проебываю миллионы © 165 11 фев 2018
    Такая проблема , пишу программу для шифрования и дешифрования текстов различными алгоритмами
    Шифры : Цезаря , Виженера и Атбаш
    Есть проблема , при шифровании и дешифровании , у меня удаляются пробелы , а заглавные буквы переходят в строчные :despair:
    Помогите ребзя , кто может
    Код
    alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"

    def poyasnenie():
    print("Краткое описание шифров \n"
    "Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, \n "
    "находящимся на некотором постоянном числе позиций левее или правее него в алфавите. \n"
    "Шифр Виженера — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. \n"
    "Атбаш — простой шифр подстановки для алфавитного письма. \n"
    "Правило шифрования состоит в замене n-й буквы алфавита буквой с номером m - n + 1, где m — число букв в алфавите.\n")


    def caesar_encrypt(text):
    key = int(input('Введите ключ шифрования --> '))
    result = ""
    for i in text:
    result += alphabet[(alphabet.index(i) + key) % len(alphabet)]

    return result


    def caesar_decrypt(text):
    key = int(input('Введите ключ дешифрования --> '))
    result = ""
    for i in text:
    result += alphabet[(alphabet.index(i) - key) % len(alphabet)]

    return result


    def vigenere_encrypt(text):
    key = input("Введите ключ шифрования --> ")
    result = []
    space = 0

    for index, symbol in enumerate(text):
    if symbol != " ":
    index_1 = alphabet.index(symbol)
    index_2 = alphabet.index(key[(index - space) % len(key)])
    index_result = (index_1 + index_2) % len(alphabet)
    result.append(alphabet[index_result])
    else:
    space += 1
    result.append(" ")

    return "".join(result)


    def vigenere_decrypt(text):
    key = input("Введите ключ дешифрования --> ")
    result = []
    space = 0

    for index, symbol in enumerate(text):
    if symbol != " ":
    index_1 = alphabet.index(symbol)
    index_2 = alphabet.index(key[(index - space) % len(key)])
    index_result = (index_1 - index_2) % len(alphabet)
    result.append(alphabet[index_result])
    else:
    space += 1
    result.append(" ")

    return "".join(result)


    def atbash(text):
    return text.translate(str.maketrans(
    alphabet + alphabet.upper(), alphabet[::-1] + alphabet.upper()[::-1]))



    print("Добро пожаловать в программу для шифрования и дешифрования текстов")

    poyasnenie()

    print("Выберите способ шифрования:")
    cipher = input("Шифр Цезаря, Виженера, Атбаш --> ").lower()
    action = input("Вы собираетесь шифровать[Ш] или дешифровать[Д] сообщение --> ").lower()
    text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "")

    if cipher not in ["цезаря", "цезарь", "виженера", "виженер", "атбаш"]:
    print("Неизвестный шифр")

    elif action not in ["ш", "д"]:
    print("Неизвестное действие")

    else:
    if cipher == "цезаря" or cipher == "цезарь":
    print("(Не забываем что ключ в шифре Цезаря - цифры)")
    if action == "ш":
    result = caesar_encrypt(text)
    else:
    result = caesar_decrypt(text)

    elif cipher == "виженера" or cipher == "виженер":
    print("(Не забываем что в шифре Виженера в виде ключа выступает слово)")
    if action == "ш":
    result = vigenere_encrypt(text)
    else:
    result = vigenere_decrypt(text)

    elif cipher == "атбаш":
    result = atbash(text)

    print(f"Result: {result}")
     
  2. ripover
    ripover 4 май 2020 рофланеблишко 6 8 июл 2018
    хм, чел , по поводу заглавных и строчных, может проблема в том, что у тебя в самой первой строчке только строчные буквы указаны?
    p.s. в код не вчитывался, так что могу ошибаться
     
  3. AndrewKO322
    AndrewKO322 4 май 2020 42 14 апр 2017
    Код
    text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "")
    клоун да?
     
    1. ripover
      AndrewKO322, хахахахаххаахахахахаха
Top
Загрузка...