• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Задача 6. Паранойя

04.09.2022
5
0
BIT
0

Задача 6. Паранойя​

Что нужно сделать

Артуру постоянно кажется, что за ним следят и все хотят своровать «крайне важную информацию» с его компьютера, включая переписку с людьми. Поэтому он эти переписки шифрует. И делает это с помощью шифра Цезаря (чем веселит агента службы безопасности).

Напишите программу, которая шифрует содержимое текстового файла text.txt шифром Цезаря, при этом символы первой строки файла должны циклически сдвигаться на один, второй строки — на два, третьей строки — на три и так далее. Результат выведите в файл cipher_text.txt.



Пример:

Содержимое файла text.txt:
Hello
Hello
Hello
Hello



Содержимое файла cipher_text.txt:
Ifmmp
Jgnnq
Khoor
Lipps
 
02.03.2021
550
399
BIT
224
уважаемый, тебе всего лишь нужно загуглить
Код:
python шифр цезаря
и изучить как это работает. У тебя все получиться, не опускай руки, все новое сложно
 

Skandal

Green Team
10.06.2021
29
1
BIT
20
Если у тебя паранойя и тебе кажется что за тобой кто то следит, то это ещё не значит что за тобой ни кто не следит.
 

check_response

New member
15.09.2022
2
0
BIT
0
Python:
from os.path import exists


alphabet_en = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
alphabet_ru = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
numbers = "0123456789"


def caesar(alphabet, letter, caesar_key):
    index = alphabet.find(letter) + caesar_key

    if index > len(alphabet) - 1:
        index = index % len(alphabet)

    return alphabet[index]


def get_alphabet(letter):
    if letter in alphabet_en:
        return alphabet_en

    if letter in alphabet_ru:
        return alphabet_ru

    if letter in alphabet_en.lower():
        return alphabet_en.lower()

    if letter in alphabet_ru.lower():
        return alphabet_ru.lower()

    if letter in numbers:
        return numbers

    return None


def main():
    if not exists("text.txt"):
        print("File not Found!")
        exit()

    cipher_file = open("cipher_text.txt", "w+")
    clean_file = open("text.txt", "r")
    text_list = clean_file.readlines()
    caesar_key = 1

    for line in text_list:
        caesar_line = ""

        for letter in line:
            alphabet = get_alphabet(letter)

            if alphabet != None:
                caesar_line += caesar(alphabet, letter, caesar_key)
            else:
                caesar_line += letter

        caesar_key += 1

        cipher_file.write(caesar_line)

    print("Before: ")
    clean_file.seek(0)
    print(clean_file.readlines())

    print("After: ")
    cipher_file.seek(0)
    print(cipher_file.readlines())

    cipher_file.close()
    clean_file.close()

    print("Everything is Done!")


if __name__ == "__main__":
    main()
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!