所以我基本上是在尝试创建一个脚本,该脚本将不断生成密钥并假设强力找到用于解密的正确密钥,并运行它输出
这是脚本:
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)
任何有关导致此问题的原因的信息将不胜感激!
来自文档:
解密(令牌,ttl=无) 解密 Fernet 令牌。如果解密成功,您将收到原始明文作为结果,否则将引发异常。
...
引发:cryptography.fernet.InvalidToken – 如果令牌以任何方式无效,则会引发此异常。令牌可能因多种原因而无效:它比 ttl 旧、格式错误或没有有效签名。
Fernet 密码规范 使用基于哈希的消息身份验证代码 (HMAC) 来验证密文的完整性。使用不正确的密钥进行解密将导致不同的签名,因此此验证将失败(对应于错误跟踪中的“签名与摘要不匹配”消息)。
要解决您的问题,只需将解密尝试包装在 try/ except 中即可。