Articles - A Secure Compression Component
My chief asked me to find a Delphi compression component for our new project which can also give us a really strong encryption. The security is in great demand nowadays; I think you know why. So I gained additional requirements for this task and I got the following result.
The dream-component must be able to compress multiple files, to protect archive with strong encryption and to span archive on multiple disks. Also we would like to see a native VCL without any ActiveX or DLL garbage.
My first idea was to use some ZIP library, but I suspect that it will not be enough secure. I heard that ZIP encryption is very weak, but now I have to check whether ZIP password protection is so bad. Sad to say, ZIP is really not secure system. I found a lot of ZIP password recovery programs that allow to get a password for any protected ZIP file within a few hours. So I realized that ZIP is not a solution for secure backup.
WinRar is known as really secure archive which also provides much better compression that ZIP do. So I think if I will find VCL which supports RAR format, it will be the best choice. But I was deeply disappointed. There is no developers library that is capable to create RAR archive as it is prohibited by the RAR license. Only decompression of RAR is available but it requires unrar.dll which was also undesirable for me. So I have to go on.
I’ve got it!
After several days of exploring most popular Delphi sites and downloading third-party compression components, I faced that none of the products I had tried support strong encryption. I was unpleasantly surprised by this fact but continued my search and I discovered rather interesting solution: FlexCompress
from AidAim Software
). This file compression component claims to support 5 encryption algorithms including Rijndael with 256-bit key (the Advanced Encryption Standard), BlowFish and triple DES. I was intrigued and downloaded the product.
I installed the trial version of FlexCompress on my Delphi 7 to test it. Encryption and multi-spanning features worked well as I expected. The component compiled into exe file of my application and didn’t require any dll's. I also noticed SFX, support for files larger than 4 Gb and streaming support. I didn’t test these additional features thoroughly as I didn’t need them in my current project. But I was pleased to see so rich features set. I found help manual and sample applications to be well done, but not as comprehensive as I like. Also I think error handling could be described better there. However the documentation and demos were very helpful for me and I needed them pretty seldom, as it should be in a well-designed product.
Checking tech support
I was glad to see that FlexCompress is not a freeware. I dealt a lot with different third-party tools for Delphi and my experience shows that freeware tools usually have very poor support and documentation. I don’t like to be left alone with the bug in the third-party component widely used in my project or to spend hours finding out how to use it for my tasks. That’s why I always write to tech guys of any company before I buy something there. I sent my question to AidAim’s support and I appreciated their fantastic promptness. I got detailed answer within 2 hours and ordered it immediately.
Now after month of real use I still consider FlexCompress to be a pretty good archiving solution. Although FlexCompress is now far beyond the competitors in its category, I hope to see more high-quality products available on the compression components market in the future. Hard competition produces the best quality and then we all will win.
Genius Solutions, Inc