Шифрование Fernet, дешифрование перестает работать после определенного количества расшифровок - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь использовать класс 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...