из документов :
расшифровывать (токен, ttl = нет)
Повышает:
- cryptography.fe rnet .InvalidToken - если токен каким-либо образом недействителен, возникает это исключение. Токен может быть недействительным по ряду
причин: он старше, чем ttl, имеет неправильный формат или
не имеет действительной подписи. - TypeError - Это исключение возникает, если токен не является байтом.
Вы также должны использовать:
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-безопасный 32-байтовый кодированный base64 ключ.
, если у вас есть следующее сообщение об ошибке:
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")