cryptography.fernet.InvalidToken 尝试使用不同的密钥通过 FERNET 解密密码时出现错误

问题描述 投票:0回答:1

所以我基本上是在尝试创建一个脚本,该脚本将不断生成密钥并假设强力找到用于解密的正确密钥,并运行它输出this:

这是脚本:

from cryptography.fernet import Fernet

x = "test"

key = Fernet.generate_key()
f = Fernet(key)

x_encrypted = f.encrypt(x.encode())

while True:

    key = Fernet.generate_key()
    f = Fernet(key)

    print(f.decrypt(x_encrypted))  # decoding variable x until it outputs "test" (hypothetical)

任何有关导致此问题的原因的信息将不胜感激!

python python-cryptography fernet
1个回答
0
投票

来自文档

解密(令牌,ttl=无) 解密 Fernet 令牌。如果解密成功,您将收到原始明文作为结果,否则将引发异常。

...

引发:cryptography.fernet.InvalidToken – 如果令牌以任何方式无效,则会引发此异常。令牌可能因多种原因而无效:它比 ttl 旧、格式错误或没有有效签名。

Fernet 密码规范 使用基于哈希的消息身份验证代码 (HMAC) 来验证密文的完整性。使用不正确的密钥进行解密将导致不同的签名,因此此验证将失败(对应于错误跟踪中的“签名与摘要不匹配”消息)。

要解决您的问题,只需将解密尝试包装在 try/ except 中即可。

© www.soinside.com 2019 - 2024. All rights reserved.