Шифрование большого объёма информации

Мне необходимо шифровать по алгоритму aes (желательно с помощью модуля fernet) файл неопределённого объёма. Базовые функции fernet прекрасно справляются с небольшими картинками, но с большим файлом размером примерно 600мб - нет. Сначала компьютер зависает на какое-то время, а потом программа, которая шифрует файл, вылетает.

Каким образом можно зашифровать большой файл с помощью python?


Ответы (1 шт):

Автор решения: CrazyElf

Можно использовать, например, модуль pyAesCrypt, который позволяет указать размер буфера при шифровании файла:

pyAesCrypt.encryptFile("data.txt", "data.txt.aes", password, bufferSize)

Либо вообще проводить шифрование в потоковом режиме:

with open("data.txt", "rb") as fIn:
    with open("data.txt.aes", "wb") as fOut:
        pyAesCrypt.encryptStream(fIn, fOut, password, bufferSize)

При таком подходе проблем с памятью на больших файлах быть не должно.

→ Ссылка