Я пытаюсь использовать класс Fernet из модуля криптографии. У меня довольно странная проблема. Функция шифрования работает отлично. Но функция дешифрования может иногда давать сбой после шифрования определенного количества файлов. Количество файлов меняется каждый раз, поэтому я не могу найти какой-либо шаблон в случае его сбоя.
В примере, где я зашифровал 10 файлов, функция дешифрования успешно расшифровывает файл 0,1,2, а затем не можетрасшифровать файл 3,4,5. но 6,7,8 и 9 прекрасно расшифровывают.
Файлы, которые я пытаюсь зашифровать / расшифровать, являются файлами .h264, если это имеет значение. Использование Python 3.7.4 в Linux
Код показан ниже
class EncryptionTest:
def __init__(self):
self.key = Fernet.generate_key()
self.fernet = Fernet(self.key)
def encrypt_file(self, file_path):
try:
with open(file_path, "rb") as plaintext_file:
plaintext_data = plaintext_file.read()
encrypted_data = self.fernet.encrypt(plaintext_data)
print("Encrypted ",file_path)
with open(file_path, "wb") as encrypted_file:
encrypted_file.write(encrypted_data)
except InvalidToken:
pass
def decrypt_file(self, file_path):
try:
with open(file_path, "rb") as encrypted_file:
encrypted_data = encrypted_file.read()
plaintext_data = self.fernet.decrypt(encrypted_data, ttl=None)
print("Decrypted ",file_path)
with open(file_path, "wb") as plaintext_file:
plaintext_file.write(plaintext_data)
except InvalidToken:
pass