Project Description
Command line utility to compress and encrypt files. Uses Zip64 to support large (>4gb) files and AES 256-bit encryption on the entire filestream because zip passwords are just not very secure.

The CryptoZip Visual Studio 2008 solution consists of two projects so far:
  • a CryptoZipLib class library which handles the compression/encryption and is compiled to be compatible with Silverlight applications.
  • a CryptoZipLite console application that provides a very simple frontend to the CryptoZipLib functionality.

The CryptoZipLib assembly merely provides two static methods: Zip and Unzip. They use the Silverlight-compatible SharpZipLib API to compress a file but take the additional step of wrapping the ZipInputStream and ZipOutputStream in a CryptoStream that uses AES-256 as its encryption algorithm.

CryptoZipLite is a fairly simple console application that accepts details about the encryption/decryption operation as parameters and passes them off to the CryptoZipLib methods to do the work.

usage: cryptoziplib
-e (encrypt)
-d (decrypt)
-i input filename
-k encryption key
-o output folder
-? show syntax summary

The functionality so far is fairly basic but it will take one file as a parameter and compress it and encrypt it in one pass. The resulting file will have a .cryptozip extension and will not be able to be opened by any other ZIP applications because of the encryption. Future plans for the project are as follows:
  • IsolatedStorage support for Silverlight applications. Even though the CryptoZipLib assembly is Silverlight-compatible, it currently can't be used by Silverlight because it uses FileStreams for direct file access and Silverlight only supports IsolatedStorageFileStreams.
  • An option to strip the encryption off a .cryptozip file to just leave the .zip.
  • Build a WPF application to serve as a more user-friendly frontend than the console app. This is really the main goal of the project and will just be called CryptoZip.

If you're looking for a commercial or other open-source product with similar functionality, these are a few great options:

Last edited Feb 11, 2009 at 12:30 PM by kenm, version 5