Python 引发InvalidToken,cryptography.fernet.InvalidToken

Python 引发InvalidToken,cryptography.fernet.InvalidToken,python,cryptography,byte,python-cryptography,fernet,Python,Cryptography,Byte,Python Cryptography,Fernet,我的程序有问题,它所做的只是基于密钥对文本进行加密和解密。然而,当我尝试解密加密的单词时,它只会吐出错误 raiseinvalidtoken 加密.fernet.InvalidToken 这是密码 #导入库 从cryptography.fernet导入fernet 从tkinter进口* 导入base64 def加密(文本): f=Fernet(b'eY_snWFGBTxC55GsmloucJhPtiLt_3bANhHnikOlXFQ=') 打印(f.encrypt((str(text_f).

我的程序有问题,它所做的只是基于密钥对文本进行加密和解密。然而,当我尝试解密加密的单词时,它只会吐出错误

raiseinvalidtoken
加密.fernet.InvalidToken

这是密码

#导入库
从cryptography.fernet导入fernet
从tkinter进口*
导入base64
def加密(文本):
f=Fernet(b'eY_snWFGBTxC55GsmloucJhPtiLt_3bANhHnikOlXFQ=')
打印(f.encrypt((str(text_f).encode()))
def解密(文本):
f=Fernet(b'eY_snWFGBTxC55GsmloucJhPtiLt_3bANhHnikOlXFQ=')
打印(f.decrypt((字节(text_f).encode()))
#设置窗口
root=Tk()
#定义元素
text_user=“”
说明1=标签(根,text=“输入文本”)
文本输入=输入(根,文本变量=文本用户)
button_encode=button(root,text='encode',command=lambda:Encrypt(str(text_user.encode()))
button\u decode=button(root,text='decode',command=lambda:Decrypt(str(text\u user.encode()))
text_description=标签(根,text=”“)
#包装元素
说明1.包装(ipady=10,ipadx=5)
text_input.pack(ipady=5,ipadx=4)
按钮编码包(ipady=3,ipadx=12)
按钮解码包(ipady=3,ipadx=12)
#设置窗口属性
根几何体('800x650')
根标题(“APEP |编码器和解码器”)
#循环窗口运行时

root.mainloop()
我找不到与您提供的代码完全相同的代码。我想您已将无效值传递给加密/解密函数

我添加了一些更改:

#导入库
从functools导入部分
从cryptography.fernet导入fernet
从tkinter进口*
导入base64
key=Fernet.generate_key()
f=Fernet(键)
def加密(文本:条目):
encrypted=f.encrypt(字节(text_f.get(),'utf-8'))
打印(“[*]加密:{}”。格式(加密))
返回加密
def解密(文本:条目):
plain=f.decrypt(字节(text_f.get(),'utf-8'))
打印(“[*]普通:{}”。格式(普通))
回归平原
#设置窗口
root=Tk()
#定义元素
text_user=“”
说明1=标签(根,text=“输入文本”)
文本输入=输入(根,文本变量=文本用户)
按钮编码=按钮(根,text='encode',命令=部分(加密,文本输入))
按钮解码=按钮(根,text='decode',命令=部分(解密,文本输入))
text_description=标签(根,text=”“)
#包装元素
说明1.包装(ipady=10,ipadx=5)
text_input.pack(ipady=5,ipadx=4)
按钮编码包(ipady=3,ipadx=12)
按钮解码包(ipady=3,ipadx=12)
#设置窗口属性
根几何体('800x650')
根标题(“APEP |编码器和解码器”)
#循环窗口运行时
root.mainloop()
我已经添加了
partial
函数导入并从条目小部件(text\u f.get())接收文本

结果可能是您所期望的:

[*] Encrypted: b'gAAAAABequ_Y0sJVQVDTTcES3nHKm50gTlKqECPmEyLUgh3A1ehw0ANkKmk9PF3Y-vZ8wS6oGwvL6l432WiNO3U0LlTkD1ilhQ=='
[*] Plain: b'test'

非常感谢你,多年来我一直在努力解决这个问题,你帮了我很大的忙!:)没问题。我很高兴能帮上忙。