Помоги доделать данный код
Выдает ошибки при шифрование и дешифрование, нужно чтобы бралось значение ключа который формируется
import tkinter as form
from random import sample
def encrypt_text(text, key):
if len(text) != len(key):
raise ValueError('...')
out = ''.join(text[i-1] for i in map(int, key))
return out
def decrypt_text(text1, key1):
if len(text1) != len(key1):
raise ValueError('...')
out =''.join([i[0] for i in sorted(zip(text1, key1), key=lambda i: int(i[1]))])
return out
def process():
text = entry_in.get()
key = int(entry_key.get())
text_crypto = encrypt_text(text, key)
entry_out.delete(0, 'end')
entry_out.insert(0, text_crypto)
def process2():
text1 = entry_out.get()
key1 = int(entry_key.get())
text_decrypto = decrypt_text(text1, key1)
entry_no.delete(0, 'end')
entry_no.insert(0, text_decrypto)
def key():
text = entry_in.get()
key = sample(range(1, len(text) + 1), len(text))
entry_key.delete(0, 'end')
entry_key.insert(0, ''.join(map(str, key)))
root = form.Tk()
root.geometry('200x300')
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()
lbl3 = form.Label(text='Дешифрованный текст').pack()
entry_no = form.Entry(width=30)
entry_no.pack()
root.mainloop()