Шифрование большого объёма информации
Мне необходимо шифровать по алгоритму 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)
При таком подходе проблем с памятью на больших файлах быть не должно.