如何分块解密大文件?

How to decrypt large files in chunks?

我正在尝试使用 PgPy 解密一个大文件,但遇到了这个问题:

OverflowError: integer 2632261350 does not fit '32-bit int'

很明显文件大小不合适,所以我想知道如何分块解密大文件?我们可以解密数据块吗?或者我们只能用我们拥有的密钥解密整个数据?

不确定 pgpy,但看看 python-gnupg。它是 gnupg 的包装器,能够 encrypt/decrypt 文件作为流。

with stream as open(filename,"rb"):
    decrypted_data = gpg.decrypt_file(stream) # e.g. after stream = open(filename, "rb")

我认为这更多是内存问题而不是库问题。如果您可以使用 pgpy 解密为流,您将获得相同的结果。