【问题标题】:cryptography.fernet.InvalidToken problem with cryptographycryptography.fernet.InvalidToken 密码学问题
【发布时间】:2022-11-11 08:37:24
【问题描述】:

尝试运行时出现此错误:

  File "Test Files.py", line 502, in decryptdefault
decrypted = fernet.decrypt(d)
  File "/usr/lib/python3/dist-packages/cryptography/fernet.py", line 74, in decrypt
timestamp, data = Fernet._get_unverified_token_data(token)
  File "/usr/lib/python3/dist-packages/cryptography/fernet.py", line 92, in _get_unverified_token_data
    raise InvalidToken

cryptography.fernet.InvalidToken

仅供参考 dk 变量是用键定义的(默认键)

dk = 'niwaXsYbDiAxmLiqRiFbDa_8gHio15sNQ6ZO-sQ0nR4='
# Decrypts the file with default key
def decryptdefault(inclufile):
    Key = dk

    fernet = Fernet(Key)
    readfile = open(inclufile, 'rb')
    d = readfile.read()
    readfile.close()

    # Decrypts and puts it into the text
    if readfile != "":
        decrypted = fernet.decrypt(d)
        decrypted = str(decrypted).replace('b\'', '', 1)
        decrypted = decrypted[:-3]
        return str(decrypted)

编辑:我为那些询问的人添加了密钥

【问题讨论】:

  • 显然您的密钥和/或密文有问题。除此之外,您的问题中没有足够的信息来缩小问题的范围。
  • 我添加了密钥。你能告诉我它是否有任何问题,因为我生成了一个新密钥并且仍然得到同样的错误。

标签: python cryptography


【解决方案1】:

我后来通过对同一个项目的反复试验发现,你需要把你的钥匙变成这样的东西key = b'niwaXsYbDiAxmLiqRiFbDa_8gHio15sNQ6ZO-sQ0nR4='

主要区别在于密钥以 utf-8 格式编码,现在 Fernet 可以读取并且不会返回该错误。这是一个使用 Tkinter、Fernet 和 os 来实际解密我的文件的函数。

# Propriatary method of encrypting files
def decrypt(self, file):
    with open(file, 'rb') as readfile:
        contents = readfile.read()

    self.title(os.path.basename(file) + ' - SecureNote')
    # self.textbox is a variable inside of the class I am using for my window
    self.textbox.delete(1.0, tk.END)

    if contents != "":
        # getword retur
        Key = bytes(getword('Key:', 1), encoding="utf-8")
        fernet = Fernet(Key)

        decrypted = fernet.decrypt(contents).decode('utf-8')
        self.textbox.insert(1.0, str(decrypted))

        del Key
        del fernet
    else:
        pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多