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

时间:2019-01-10 14:56:49

标签: python python-3.x tkinter cryptography

正如标题所述,在我解密我的加密信息并将其转换为字符串后,它不包含任何内容。如果我在将其转换为字符串之前将其打印到控制台,它只会显示“ 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()

1 个答案:

答案 0 :(得分:0)

欢迎,我刚刚发现了问题。基本上,我使用的是tkinter.Entry(),并希望使用其中写入的内容作为要加密的文本。这样,我为输入字段运行了.get(),但这在函数之外,因此当输入字段中没有任何内容时,它将字符串分配为e.get(),因为它在加载其他所有内容时都已加载。是的问题不在问题中显示的代码之外,因此它对其他人有效,但对我不起作用。 TL; DR字符串变量为空。