Форум сайта python.su
Всем добрый вечер, не могу нормально реализовать шифрования маршрутной перестановкой (вертикальная перестановка либо горизонтальная)
Нужно сделать ввод текста, формирование ключа
Вывод на экран исходного текста, ключа, шифрованного текста и расшифрованного текста
Код для формирование ключа есть такой:
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))
Офлайн
Сделай эту задачу сначала в консоли полностью. Отдели ввод от подсчётов, а подсчёты отдели от вывода. Когда у тебя будет такая программа, она будет представлять из себя соединение изолированных друг от друга частей: ввод, преобразования, вывод. И вот когда у тебя будет такая программа (сделанная таким образом), ты часть программы, отвечающую за ввод из консоли, заменишь на GUI-форму, а часть программы, отвечающую за вывод, заменишь на GUI-окно. Преобразования при этом вообще никак не будут затронуты.
SuperBlurКод для формирования ключа не должен вообще включать никакой ввод ниоткуда. Введённые данные уже должны быть получены до формирования ключа. В этом твоя ошибка - ты всё насмешивал друг с другом.
Код для формирование ключа есть такой:
Отредактировано py.user.next (Сен. 27, 2022 23:59:24)
Офлайн
https://python.su/forum/topic/41952/?page=1#post-224049
Вот полностью готовая функция шифратор
Допиши дешифратор
Офлайн