gpt4 book ai didi

python - 无法排除 Python 中的 cryptography.fernet.InvalidToken 错误

转载 作者:行者123 更新时间:2023-12-03 07:52:28 24 4
gpt4 key购买 nike

我试过这个:

from cryptography import *
try:
#code here to create key from a password
f=Fernet(key)
token=f.decrypt(data)
except cryptography.fernet.InvalidToken:
print("wow")

但它仍然会引发错误。

最佳答案

来自 docs :

decrypt(token, ttl=None)

Raises:

  • cryptography.fernet.InvalidToken – If the token is in any way invalid, this exception is raised. A token may be invalid for a
    number of reasons: it is older than the ttl, it is malformed, or it
    does not have a valid signature.
  • TypeError – This exception is raised if token is not bytes.


你应该使用:
from cryptography import *
import cryptography

try:
#code here to create key from a password
f=Fernet(key)
token=f.decrypt(data)
except (cryptography.fernet.InvalidToken, TypeError):
print("wow")

还有, key应该是字节——一个 URL 安全的 base64 编码的 32 字节 key 。

如果您有以下错误消息:
Error: Incorrect padding

这是因为在 Fernet类它正在应用的构造函数 base64.decodestring反对你的 key
key = base64.urlsafe_b64decode(key)

要捕获您可以使用的错误:
from binascii import Error
from cryptography import *
import cryptography

try:
#code here to create key from a password
f=Fernet(key)
token=f.decrypt(data)
except (cryptography.fernet.InvalidToken, TypeError, Error):
print("wow")

关于python - 无法排除 Python 中的 cryptography.fernet.InvalidToken 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60912944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com