Форум сайта python.su
0
Всем добрый вечер, не могу нормально реализовать шифрования маршрутной перестановкой (вертикальная перестановка либо горизонтальная)
Нужно сделать ввод текста, формирование ключа
Вывод на экран исходного текста, ключа, шифрованного текста и расшифрованного текста
Код для формирование ключа есть такой:
def key(): message = entry_in.get() offset1 = sample(range(1, len(message) + 1), len(message)) entry_key.delete(0, 'end') entry_key.insert(0, ''.join(map(str, offset1)))
root = form.Tk() root.geometry('200x200') lbl1 = form.Label(text='Введите текст').pack() entry_in = form.Entry(width=30) entry_in.pack() lbl_key = form.Label(text='Ключ шифрования').pack() entry_key = form.Entry(width=30, text='') entry_key.pack() lbl2 = form.Label(text='Зашифрованый текст').pack() entry_out = form.Entry(width=30) entry_out.pack() btn_key = form.Button(text='Создать ключ', command=key) btn_key.pack() btn = form.Button(text='Шифрование', command=process) btn.pack() btn2 = form.Button(text='Дефишрование', command=process2) btn2.pack() root.mainloop()
plaintext = 'Привет' key = 2 ciphertext = [''] * key for column in range(key): pointer = column while pointer < len(plaintext): ciphertext[column] += plaintext[pointer] print(ciphertext) pointer += key print(''.join(ciphertext))
Офлайн
857
Сделай эту задачу сначала в консоли полностью. Отдели ввод от подсчётов, а подсчёты отдели от вывода. Когда у тебя будет такая программа, она будет представлять из себя соединение изолированных друг от друга частей: ввод, преобразования, вывод. И вот когда у тебя будет такая программа (сделанная таким образом), ты часть программы, отвечающую за ввод из консоли, заменишь на GUI-форму, а часть программы, отвечающую за вывод, заменишь на GUI-окно. Преобразования при этом вообще никак не будут затронуты.
SuperBlurКод для формирования ключа не должен вообще включать никакой ввод ниоткуда. Введённые данные уже должны быть получены до формирования ключа. В этом твоя ошибка - ты всё насмешивал друг с другом.
Код для формирование ключа есть такой:
Отредактировано py.user.next (Сен. 27, 2022 23:59:24)
Офлайн
61
https://python.su/forum/topic/41952/?page=1#post-224049
Вот полностью готовая функция шифратор
Допиши дешифратор
Офлайн