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

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

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

    Скидки до 10%

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

Python, криптография и ASCII.

shinenvice034

Active member
11.08.2020
42
0
BIT
0
Очень тяжелая задача, которая лично для меня оказалась непосильной. Большой респект тому, кто поможет в ее решении.

Допустим, что я решил передать сообщение своему другу и решил его зашифровать. Допустим что мое сообщение было rocket. Я захожу в Python, и делаю скрипт, который разбавляет сообщение лишними символами, и мое сообщение принимает вид r6o\cgkQebty, т.е каждый четный символ нового сообщения - лишний символ. Затем я при помощи функции ord перевожу это сообщение, и получаю список [114, 54, 111, 92, 99, 103, 107, 81, 101, 98, 116, 121]. Далее я соединяю все значения в сплошную строку, получая вот такую строку: 1145411192991031078110198116121. Затем я отправляю это сообщение другу. Он знает, что каждый второй символ лишний, и его нужно убрать. Поэтому нужна такая функция, которая бы создала из сплошной строки 1145411192991031078110198116121 список [114, 54, 111, 92, 99, 103, 107, 81, 101, 98, 116, 121], затем удаляет каждый 2 символ из списка и делает из оставшихся значений исходный текст.

То что я написал - пример, иллюстрация метода работы алгоритма. Решение нужно общее, чтобы подходило для любых сообщений, которые я хотел бы передать.
 

larchik

Администратор
07.06.2019
374
426
BIT
242
Не уверен, что это обратимый процесс.
Чтобы процесс был обратимым, каждое число в списке [114, 54, 111, 92, 99, 103, 107, 81, 101, 98, 116, 121] можно привести к одной разрядности. Для этого, к примеру, к числам, которые состоят из двух цифр, в начало прибавляем 0.
Получится [114, 054, 111, 092, 099, 103, 107, 081, 101, 098, 116, 121].
Дальше, думаю, мысль понятна.
 
Мы в соцсетях:

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