Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 27, 2022 21:49:15

SuperBlur
Зарегистрирован: 2022-09-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Шифрование

Всем добрый вечер, не могу нормально реализовать шифрования маршрутной перестановкой (вертикальная перестановка либо горизонтальная)
Нужно сделать ввод текста, формирование ключа
Вывод на экран исходного текста, ключа, шифрованного текста и расшифрованного текста

Код для формирование ключа есть такой:

 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))

Также наткнулся на ресурс : https://teachen.info/cspp/unit6/lab06-02.html

Офлайн

#2 Сен. 27, 2022 23:52:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9867
Репутация: +  853  -
Профиль   Отправить e-mail  

Шифрование

Сделай эту задачу сначала в консоли полностью. Отдели ввод от подсчётов, а подсчёты отдели от вывода. Когда у тебя будет такая программа, она будет представлять из себя соединение изолированных друг от друга частей: ввод, преобразования, вывод. И вот когда у тебя будет такая программа (сделанная таким образом), ты часть программы, отвечающую за ввод из консоли, заменишь на GUI-форму, а часть программы, отвечающую за вывод, заменишь на GUI-окно. Преобразования при этом вообще никак не будут затронуты.

SuperBlur
Код для формирование ключа есть такой:
Код для формирования ключа не должен вообще включать никакой ввод ниоткуда. Введённые данные уже должны быть получены до формирования ключа. В этом твоя ошибка - ты всё насмешивал друг с другом.



Отредактировано py.user.next (Сен. 27, 2022 23:59:24)

Офлайн

#3 Сен. 28, 2022 12:29:00

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Шифрование

https://python.su/forum/topic/41952/?page=1#post-224049
Вот полностью готовая функция шифратор
Допиши дешифратор



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version