解密后的令牌不包含任何内容,Python

2024-06-12 06:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

正如标题所说,在我解密我的加密信息并将其转换为字符串后,它什么也不包含。如果我在把它转换成字符串之前把它打印到控制台上,它只会显示“b”,我相信这是用来把字节转换成字符串的,但我不知道它为什么在那里。但如果它被打印到控制台后,它变成了一个字符串,它不会打印任何东西。你知道吗

import tkinter
from cryptography.fernet import Fernet

class Cryptography:

    def encrypt(self, string):
        key = Fernet.generate_key()
        self.f = Fernet(key)
        byteString = str.encode(string)
        self.token = self.f.encrypt(byteString)
        w.insert(tkinter.INSERT, self.token.decode() + "\n")
        w.pack()

    def decrypt(self):
        global token
        try:
            decrypted = self.f.decrypt(self.token)
        except (NameError, AttributeError):
            w.insert(tkinter.INSERT, "you didn't yet encrypt anything\n")
            w.pack()
        decrypted = self.f.decrypt(self.token)
        print(decrypted)
        dsAsString = decrypted.decode("utf-8")
        print("/n" + dsAsString)
        w.insert(tkinter.INSERT, dsAsString + "\n")
        w.pack()

Tags: key字符串importselftokentkinterdefpack
1条回答
网友
1楼 · 发布于 2024-06-12 06:32:48

嗯,我刚发现问题。基本上我用的是tkinter.入口()并希望使用其中所写的内容作为要加密的文本。因此,我对输入字段运行了.get(),但这超出了函数的范围,因此当输入字段中没有任何内容时,它会将字符串赋值为e.get(),因为它是在加载其他内容时加载的。所以是的。这个问题超出了问题中显示的代码范围,因此它对其他人有效,但对我无效。TL;DR字符串变量为空。你知道吗

相关问题 更多 >