Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 5

Шифр Двойные перестановки

21.05.2020, 08:35. Показов 8179. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите пожалуйста реализовать программу на python, шифр двойные перестановки, буду очень благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2020, 08:35
Ответы с готовыми решениями:

Шифр вертикальной перестановки
нужно реализовать шифровку и дешифровку вертикальной перестановкой по ключу который вводит пользователь(количество столбцов в матрице равно...

Шифр одиночной перестановки по ключевому слову
Помогите пожалуйста написать код на питоне Ключевое слово - Контроль Фраза - Здесь сокрыто совершенно секретное сообщение Прикладываю...

Шифр перестановки
Нужна программа, которая будет выполнять шифр перестановки и выполнять расшифровку.

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
21.05.2020, 08:37
Цитата Сообщение от vrrrr Посмотреть сообщение
буду очень благодарен.
все это пишут, чтобы это значило?)))

Цитата Сообщение от vrrrr Посмотреть сообщение
шифр двойные перестановки,
если кто-то захочет вдруг потратить время то он должен еще и гуглить что за шифр?
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,691
Записей в блоге: 14
21.05.2020, 09:06
Welemir1, он сейчас ответит: "так в методичке написано"
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 5
21.05.2020, 09:51  [ТС]
Пожалуйста, и искать не нужно) да? https://yandex.ru/images/searc... rpt=simage
0
Програмист
4 / 5 / 0
Регистрация: 02.12.2019
Сообщений: 53
Записей в блоге: 1
21.05.2020, 13:11
Так напиши что точно нужно сделать
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 5
26.05.2020, 12:13  [ТС]
Нужно создать шифр, что бы он зашифровывал
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2020, 13:26
Цитата Сообщение от vrrrr Посмотреть сообщение
Нужно создать шифр, что бы он зашифровывал
И что вас останавливает это сделать?
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
26.05.2020, 15:06
vrrrr, если нужно чтобы только шифровал, то без проблем
Python
1
2
3
4
5
6
7
8
9
10
from math import ceil
from random import shuffle
s = list('двойная перестановка')
s1 = round(len(s)**0.5)
s2 = ceil(len(s)**0.5)
a = [[s.pop(0) if s else ' ' for _ in range(s1)] for _ in range(s2)]
shuffle(a)
a = list(map(list,zip(*a)))
shuffle(a)
print(''.join([i for j in a for i in j]))

пользуясь случаем, задам вопрос
почему распаковка с помощью list comprehension работает именно так?
Python
1
[i for j in a for i in j]
пытался сделать так, посчитал что это будет логично
Python
1
[i for i in j for j in a]
но почему-то внешним циклом считается первый написанный(for i in j, если смотреть последний пример)

Добавлено через 1 минуту
да, я нашел пример в этой статье , но всё-равно не понимаю логики
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 5
27.05.2020, 10:02  [ТС]
Цитата Сообщение от codcw Посмотреть сообщение
from math import ceil
from random import shuffle
s = list('двойная перестановка')
s1 = round(len(s)**0.5)
s2 = ceil(len(s)**0.5)
a = [[s.pop(0) if s else ' ' for _ in range(s1)] for _ in range(s2)]
shuffle(a)
a = list(map(list,zip(*a)))
shuffle(a)
print(''.join([i for j in a for i in j
Цитата Сообщение от codcw Посмотреть сообщение
если нужно чтобы только шифровал, то без проблем
Этот код шифрует по правилам шифра двойной перестановки?

Добавлено через 3 минуты
Цитата Сообщение от vrrrr Посмотреть сообщение
если нужно чтобы только шифровал, то без проблем
просто у меня есть код, а подогнать уравнение что бы оно верно шифровало у меня не выходит

def encode(text, xkeys, ykeys):
return ''.join(text[4*(int(y)-1)+(int(x)-1)] for y in ykeys for x in xkeys)#ТУТ ПОДГОНЯТЬ УРАВНЕНИЕ ТАК, ЧТОБЫ ПРИ ШИФРОВКИ "ПРИЛЕТАЮВОСЬМОГО" ПОЛУЧАЛОСЬ "ТЮАЕООГМРЛИПОЬСВ"

def decode(text, xkeys, ykeys):
return ''.join(text[4*(int(y)-1)+(int(x)-1)] for y in ykeys for x in xkeys) #ТУТ НИЧЕГО НЕ ИЗМЕНЯТЬ

xkeys = "4132"
ykeys = "3142"

print (xkeys)

print (ykeys)

ciphertext = encode(u'ПРИЛЕТАЮВОСЬМОГО', xkeys, ykeys)#Надо чтобы результат этого шифрования был ТЮАЕООГМРЛИПОЬСВ. Для этого нужно изменять уравнение в def encode так, чтобы оно было обратным выражением тому, что в def decode.
if ciphertext != "ТЮАЕООГМРЛИПОЬСВ":
print(ciphertext)
print ("Уравненпие не верно, подгоняйте дальше...")
else:
print(ciphertext)
print ("Уравнение правильное. Напишите мне.")

text = decode(ciphertext, xkeys, ykeys)
if text != "ПРИЛЕТАЮВОСЬМОГО":
print(text)
print ("Кодированый текст не правильно расшифровался, подгоняйте encode дальше...")
else:
print(ciphertext)
print ("Уравнение правильное. Напишите мне.")

text = decode(u'ТЮАЕООГМРЛИПОЬСВ', xkeys, ykeys)#Как должна проходть расшифровка
print(text)
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
27.05.2020, 16:12
vrrrr,
Цитата Сообщение от vrrrr Посмотреть сообщение
Этот код шифрует по правилам шифра двойной перестановки?
шифрует по этим правилам
https://ru.wikipedia.org/wiki/... 0%BA%D0%B8
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
14.01.2022, 14:37
codcw, здравствуйте! я не очень хорошо знаю питон. Можете, пожалуйста, сказать, как в данном коде сделать так, чтобы порядок столбцов и строк всегда был постоянным? Например, есть всего 4 строки в порядке (3, 1, 4, 2) и 4 столбца в порядке (4, 1, 3, 2). И чтобы, если в таблице останутся пустые ячейки, то чтобы они тоже выводились (или вставить в них какой-то символ, например, "-"). Буду рад обратной связи, спасибо!
0
34 / 28 / 6
Регистрация: 23.06.2021
Сообщений: 145
15.01.2022, 00:56
Цитата Сообщение от codcw Посмотреть сообщение
но всё-равно не понимаю логики
codcw, Python идет по порядку. Когда ты делаешь так, ты сначала обозначаешь переменную i, которая будет добавляться в список, затем обращаешься к переменной j, которой в мозгах компьютера не существует.
Python
1
[i for i in j for j in a]
А когда так, то сначала i, затем обозначаешь переменную j, из которой ты эту i будешь черпать и только потом сам процесс "вытаскивания" i из j.
Python
1
[i for j in a for i in j]
2
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
15.01.2022, 12:36
eganator, тогда нужно убрать shuffle и переставлять столбцы и строки вручную(в моём коде сначала меняется порядок строк, потом столбцов(если я правильно разобрал, писал то я его почти полтора года назад))

ResDT, спасибо
1
34 / 28 / 6
Регистрация: 23.06.2021
Сообщений: 145
17.01.2022, 23:55
Цитата Сообщение от codcw Посмотреть сообщение
спасибо
codcw, обращайся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.01.2022, 23:55
Помогаю со студенческими работами здесь

Шифр перестановки
Привет, помогите пожалуйста с этой задачей: Написать код шифрующий сообщение написанное на русском языке методом перестановки с заданным...

Шифр перестановки
Здравствуйте! Несколько дней уже сижу и никак не могу найти ошибку в блоке дешифрования текста. Дешифрованный текст должен выводиться в...

Шифр табличной маршрутной перестановки
Задание Написать программу на языке программирования python которая шифрует и дешифрует сообщение методом табличной перестановки....

Двойные перестановки шифр
Всем привет, помогите реализовать шифр двойной перестановки работает он так Кратко об алгоритме: Ключом к шифру двойной перестановки...

Двойные перестановки
Здравствуйте программисты.Нужна ваша помощь. Помогите написать программу простенькую, на C++ : двойные перестановки n1*m1 + n2*m2 Буду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru