Imagine you need to transfer some sensitive material or confidential documents between computers. To make the scenario even more fun, lets say you are transferring between different operating systems as well. You throw those documents on a USB drive and off you go. Well what happens if you lose that drive? SOL, right? And you could encrypt the drive, but then it’s only accessible on the same machine that encrypted it.
This was a general scenario that I wanted find a solution to, and it gave me the opportunity to delve into the world of encryption. The result of my time on this is Mighty Encryptor (github link). It’s a small app that you store on the USB drive or other media, along side your sensitive data. The app will ingest your files or folder tree, compress and encrypt them into a single file, and require a password to reverse the process.
The final output of Mighty Encryptor is a single compressed and fully encrypted file. My goal was to have complete obfuscation and security of the original data, giving no possible hint as to what is contained within the secure file.
I have a bit more work to do on the app, but the base features are there. I’m writing the app in .NET Core so that it can be built for Windows, Mac, and Linux. Hopefully soon I’ll be able to wrap up a 1.0 release of Mighty Encryptor.
I plan to support compressing files either individually or using block level storage, which combines many files into a single stream of data and then compresses that block of data. This type of compression is more efficient when you have lots of small files, especially text documents. In fact, I’m even going to add the ability for the application to intelligently decide which compression method to choose for best compression.