Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I compress and encrypt a large file without using external DLLs or runtimes? [closed]

I am looking for a component or other technique to compress and encrypt multiple large files (files which exceed 4gb in size, and thus will not fit in the memory available to a win32 process) into a single file. I would like the encryption to be very strong (256 bit AES or better) but the compression doesn't matter to me.

Right now, I'm using the TJvZlibMultiple component which creates its own non-Zip file format, but I have to create the archive, then encrypt it in a separate step (I'm using DcpCrypt right now). I'd like to do the same in a single pass, using streams, without using memory equal to the size of the file (ergo, the compression and encryption should happen with streams, and not in memory).

I have seen, and don't want to use, anything that requires an external DLLs like the 7zip dll. Commercial tools are okay, or any code or sample Delphi sources, but I'm looking for a thorough implementation within Delphi not a thing that imports and invokes functions in a dll.

like image 642
Warren P Avatar asked Jul 26 '12 21:07

Warren P


1 Answers

Take a look at DIZipWriter.

Supports 256 bit AES, streaming and compression.

Update: Version 5 claims to have support for large sized (64bit) entries, DIZipWriter History.

like image 193
LU RD Avatar answered Nov 03 '22 02:11

LU RD